1

私の Web アプリケーションの一部は、beanstalkd サーバーからポーリングしてデータを処理するバックグラウンド スクリプトです。

このスクリプトは (デーモンのように) 継続的に実行する必要があります。クラッシュした場合は、再起動する必要があります。また、2 回開始することもできません (より正確には 2 回実行します)。

展開と開発のプロセスを簡単にしたいので、 の使用は避けたいと考えていpcntl_forkます。Windows では利用できず、Mac で PHP を再コンパイルする必要があり、時には Linux でも...

バックグラウンドで PHP スクリプトを起動するために bash スクリプトを使用するだけでこれを行うことはできますか?

# verify that the script is not already running
...

/usr/bin/php myScript.php &

このバッチを 1 時間ごとに crontab で実行すると、プロセスが継続的に実行され、クラッシュした場合に最大 1 時間で再起動されるはずですか?

4

1 に答える 1

0

スクリプトを実行するサーバーを管理していると仮定すると、Supervisorはおそらく適切なソリューションです。

Python で書かれたプロセス制御デーモンです。PHP スクリプトを開始して実行し続けるように構成できます。PHP スクリプト自体は、特別なことをする必要はありません。分岐も手動プロセス制御も何もありません。

一方で、pcntl_forkWindows では利用できないという懸念も表明されました。これを実際に Windows で実行している場合、Supervisor は Windows に対応していないため、うまく機能しません。Windows は、デーモンをサービスとして制御する必要があるため、Unix スタイルのデーモン化にもあまり適していないことに注意してください。それは可能ですが、簡単で洗練されたソリューションではありません。

于 2012-06-29T22:36:49.330 に答える