很多时候,php-Resque工作人员会被困在工作上好几天,最终所有工作人员都被困住了,网站也停止了工作。php-resque
库是使用Composer安装的。
问题:我想手动修剪。如何访问此功能pruneDeadWorkers()
?如果找到死亡工人,我该如何重新启动它们?
答案 0 :(得分:6)
要手动修剪worker,请包含vendor / chrisboulton / php-resque / lib / Resque / Worker.php文件,实例化Worker,然后调用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。
为避免死亡工人,请使用pcntl_fork
编译您的php,在fork中执行您的工作,并将它们与工作者隔离。
答案 1 :(得分:0)
首先找到工人清单:
Resque_Worker::all();
这包含工人ID
根据{{3}}
输入命令行
`kill workers id`