1

私はubuntuサーバーでphpを介してJavaプロセスを実行するshスクリプトを実行しています。プロセスの実行にproc_openを使用しています。通常、ワークフローは次のようになります。

  • ページをリクエストする->
  • スクリプトが実行されます(完了するまで)->
  • 結果ページ。

私の場合、スクリプトは並行して実行されるため、サーバーはスクリプトが終了するまで待機しません(時間がかかる場合があるため、実行できない場合があります)。そのため、後でフォローするためにそのリソースを保存する必要があります(プロセスのステータスまたは停止するだけです)。

リソースタイプは「プロセス」です。この関数get_resource_typeを使用して取得しました。

この場合、シリアル化は機能しません-リソースは例外的です([パラメーター]ボックス内のhttp://il2.php.net/manual/en/function.serialize.phpを参照してください)。

私の目標は、優れたプロセス処理です。誰かがリソースをどのように使用できるか、またはプロセス処理のために行う他の方法を知っていますか?

4

2 に答える 2

1

後でPHPで使用するためにリソースタイプを保存することはできません。あなたがする必要があるのは、ある種の非同期通信を実装することです-おそらく、一方がステータス情報を書き込み、もう一方が読み取るファイル、共有メモリ、名前付きパイプ、...

私はpcntl拡張子を調べます。ヒント:セキュリティ上の理由から、Webサーバー環境内からフォークすることはできません。

于 2009-06-04T09:31:05.623 に答える
0

私の場合、スクリプトは並行して実行されるため、サーバーはスクリプトが終了するまで待機しません(場合によっては数時間かかるため、実行できません)。

それ自体は問題にはならないはずです。Webサーバーから開始されない限り、長時間実行されるphp-processを簡単に実行できます。Webアプリケーションからプロセスを開始する必要がある場合は、データベーステーブルにエントリを挿入してから、cronjobにスクリプトを実行させて、このキューをチェックして処理を実行することをお勧めします。

于 2009-06-04T09:46:36.950 に答える