私はGearmanワーカーコードでPHPスクリプトを実行しようとしていますが、期待される実行時間を超えている場合は、 も監視したいと思っています。タイムリーな方法で実行する(たとえば10分ごとに実行する)と、Gearmanクライアントが選択したスクリプトを実行し、Gearmanワーカーに送信します。GearmanによるPHPスクリプトの監視
Iは、以下のオプションを使用してみました:
1)独立したスクリプト、実行中のプロセスを監視し、通常のPHPスクリプトを使用してみました。 しかし、この通常のスクリプトは、ジョブが殺されたことをGearmanに知らせず、Gearmanは殺した仕事がまだ実行中だと考えています。
私は、同じ作業者でPHPスクリプトを実行するプロセスとプロセスを同期させなければならないと思いました。 これらのジョブも再起動する必要があり、クライアントが処理を行います。
2)次のコマンドを使用してPHPスクリプトを実行しています: cd /home/amehrotra/include/core/background;php $workload
;(これはスクリプトの実行が終了するまでブロックされません)。
私はexecを試してみましたが、execはスクリプトを実行しません。 exec( "/ usr/bin/php/home/amehrotra/include/core/background/$ workload>/dev/null &");
3)実行中の2人の作業者、もう1人は監視用のPHPスクリプトを実行していますが、Geramanクライアントは2人の作業者に接続していません。
GearmanワーカーがPHPを使用している場合は、内部的にアレンジすることができないため、処理されたファイル/レコードに「失敗」とマークされます。プロセスを殺すよりもはるかにエレガントなようだ。 – halfer