• 締切済み

perlの処理を遅くしたい

CGI初心者です。わかる方教えてください。 少々古いですがactiveperl apache1.3.12を利用してperlプログラムを自宅のみで使うCGIプログラムをWINDOWS上で起動しています。 処理が長くまた同時に複数の処理をperlで処理します。ブラウザ送信ボタンよりCGIを実行してperl.exeを合計5つぐらい同時に起動します。 タスクマネージャーのプロセスの優先度の設定は実行当初「普通」になっていますが,これを実行当初から「低」にしたいと思っていますが やり方がよくわかりません。CGIの書き方,apacheの設定,ショートカットの書き方でできるんではないかと思っていますが,ご存じの方教えてください。OSはWINXPです。宜しくお願いします。

みんなの回答

回答No.3

Win32::Process はPerlモジュールの名前です。 詳細は以下で確認ができます。 http://search.cpan.org/~jdb/Win32-Process-0.14/Process.pm なお、プライオリティのセット方法は以下の関数です。 $ProcessObj->SetPriorityClass($class) 参考までに。

参考URL:
http://search.cpan.org/~jdb/Win32-Process-0.14/Process.pm
回答No.2

Win32::Processを使えば、CGI自身で自己制御可能だと思いまいすよ。

syhseys
質問者

お礼

ご回答有り難うございます。 win32::PROCESSが今のところわかりません。 調べてみます。 CGI自身とは PERLスクリプトの書き方で可能なのでしょうか? なにか特別な命令があるのでしょうか? 有り難うございます。

  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.1

CGIでなくコマンドラインからの起動であれば、 start /low perl.exe file.pl で起動すればいいです。 CGIで起動だとそうも出来ないので、Cで小さいプログラムを作ってperlを優先度低で起動するようにして、apacheからはperl.exeの代わりにそれを起動するという方法が考えられます。 あるいは、CGIのperlスクリプト本体ではパラメータや入力ファイルだけ作成して、実際の長時間処理は、別のスクリプトで実行するようにしていいのであれば、system関数で、cmd.exe /c start /low \path\perl.exe \pathxx\script.pl を実行するというのも考えられます。

syhseys
質問者

お礼

有り難うございます。 コマンドラインやCは操作上の問題や理解不能な事から できそうにありません。 system関数は今まで利用したことがないので 手順が今のところわかりませんが調べてみます。   有り難うございます。