3

非常に頻繁に php-Resque ワーカーが何日も仕事でスタックし、最終的にすべてのワーカーがスタックしてサイトが機能しなくなりますphp-resque。ライブラリは Composer を使用してインストールされました。

質問:プルーニングを手動で行いたいです。この機能にアクセスするにはどうすればよいpruneDeadWorkers()ですか? また、死んだワーカーが見つかった場合、どのように再起動しますか?

ソースを表示

ここに画像の説明を入力

4

2 に答える 2

6

ワーカーを手動でプルーニングするには、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し、フォークでジョブを実行し、それらをワーカーから分離します。

于 2013-06-03T19:47:43.200 に答える
0

最初にワーカーリストを見つけます: これには 、コマンドラインのphp-resque docResque_Worker::all();タイプに 応じたワーカーIDが含まれます

`kill workers id`
于 2016-04-19T11:28:21.433 に答える