- 締切済み
perlの処理を遅くしたい
CGI初心者です。わかる方教えてください。 少々古いですがactiveperl apache1.3.12を利用してperlプログラムを自宅のみで使うCGIプログラムをWINDOWS上で起動しています。 処理が長くまた同時に複数の処理をperlで処理します。ブラウザ送信ボタンよりCGIを実行してperl.exeを合計5つぐらい同時に起動します。 タスクマネージャーのプロセスの優先度の設定は実行当初「普通」になっていますが,これを実行当初から「低」にしたいと思っていますが やり方がよくわかりません。CGIの書き方,apacheの設定,ショートカットの書き方でできるんではないかと思っていますが,ご存じの方教えてください。OSはWINXPです。宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- 大野 悟(@ohnosatoru)
- ベストアンサー率56% (17/30)
Win32::Process はPerlモジュールの名前です。 詳細は以下で確認ができます。 http://search.cpan.org/~jdb/Win32-Process-0.14/Process.pm なお、プライオリティのセット方法は以下の関数です。 $ProcessObj->SetPriorityClass($class) 参考までに。
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
Win32::Processを使えば、CGI自身で自己制御可能だと思いまいすよ。
- notnot
- ベストアンサー率47% (4901/10362)
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 を実行するというのも考えられます。
お礼
有り難うございます。 コマンドラインやCは操作上の問題や理解不能な事から できそうにありません。 system関数は今まで利用したことがないので 手順が今のところわかりませんが調べてみます。 有り難うございます。
お礼
ご回答有り難うございます。 win32::PROCESSが今のところわかりません。 調べてみます。 CGI自身とは PERLスクリプトの書き方で可能なのでしょうか? なにか特別な命令があるのでしょうか? 有り難うございます。