後でステータスを確認するために、proc_open からプロセス リソースを保存するにはどうすればよいですか?
-
09-09-2019 - |
質問
私はshを実行しています 脚本 それは ジャワ プロセスを経て php の上 ubuntu サーバ。プロセスの実行には proc_open を使用しています。通常、ワークフローは次のようになります。
- ページをリクエストする ->
- スクリプトが実行されます (完了するまで) ->
- 結果ページ。
私の場合、スクリプトは並行して実行されるため、サーバーはスクリプトが完了するまで待機しません(数時間かかるため、できない場合があります)。そのため、後でフォローできるようにそのリソースを何らかの方法で保存する必要があります(プロセスのステータスまたはただ止めているだけです)。
リソースタイプは「プロセス」なので、この関数を使用しました get_resource_type それを得るために。
この場合、シリアル化は機能しません - リソースは例外です (次を参照してください) http://il2.php.net/manual/en/function.serialize.php [パラメータ]ボックス内)。
私の目標は、適切なプロセス処理です。誰かがリソースを使用する方法、またはプロセス処理に行う他の方法を知っていますか。
解決
あなたは、PHPで後で使用するためにリソースタイプを格納することはできません。多分1は、ステータス情報を書き込み、他方は読み込みファイル、共有メモリ、名前付きパイプ、...
- 何をする必要がある非同期通信のいくつかのフォームを実装しています私は PCNTL延長するになります。ヒント:。フォークは、セキュリティ上の理由から、ウェブ・サーバー環境内からはできません。
他のヒント
スクリプトが終了するまで、サーバーが待機しませんので、スクリプトが並行して走る私の場合は(それが時々時間を要するので、それはできません)..
これは自分自身で問題になることはありません。あなたは簡単にそれがウェブサーバから開始されていない限り、長時間実行のphp-プロセスを持つことができます。あなたは、Webアプリケーションからプロセスを開始する必要がある場合、私はあなたがデータベーステーブルのエントリを挿入することを示唆して、cronジョブを持って、このキューをチェックするスクリプトを実行して処理を行うだろう。