非常に頻繁に php-Resque ワーカーが何日も仕事でスタックし、最終的にすべてのワーカーがスタックしてサイトが機能しなくなりますphp-resque
。ライブラリは Composer を使用してインストールされました。
質問:プルーニングを手動で行いたいです。この機能にアクセスするにはどうすればよいpruneDeadWorkers()
ですか? また、死んだワーカーが見つかった場合、どのように再起動しますか?
非常に頻繁に php-Resque ワーカーが何日も仕事でスタックし、最終的にすべてのワーカーがスタックしてサイトが機能しなくなりますphp-resque
。ライブラリは Composer を使用してインストールされました。
質問:プルーニングを手動で行いたいです。この機能にアクセスするにはどうすればよいpruneDeadWorkers()
ですか? また、死んだワーカーが見つかった場合、どのように再起動しますか?
ワーカーを手動でプルーニングするには、vendor/chrisboulton/php-resque/lib/Resque/Worker.php ファイルをインクルードし、ワーカーをインスタンス化してから、pruneDeadWorkers() を呼び出します。
<?php
include 'vendor/chrisboulton/php-resque/lib/Resque/Worker.php'; // If you're not already using composer autoloader
$worker = new Worker('default'); // the argument doesn't matter
$worker->pruneDeadWorkers();
php-resque にはワーカーを再起動する機能が同梱されていません。それについてはfresqueを参照してください。
ワーカーが死んでしまうのを避けるには、php を でコンパイルpcntl_fork
し、フォークでジョブを実行し、それらをワーカーから分離します。
最初にワーカーリストを見つけます:
これには
、コマンドラインのphp-resque docResque_Worker::all();
タイプに
応じたワーカーIDが含まれます
`kill workers id`