php-Resque 的工作人员经常会在工作上卡住几天,最终所有的工作人员都卡住了,网站停止工作。php-resque
库是使用 Composer 安装的。
问题:我想手动进行修剪。如何访问此功能pruneDeadWorkers()
?如果发现死掉的工人,我该如何重新启动它们?
php-Resque 的工作人员经常会在工作上卡住几天,最终所有的工作人员都卡住了,网站停止工作。php-resque
库是使用 Composer 安装的。
问题:我想手动进行修剪。如何访问此功能pruneDeadWorkers()
?如果发现死掉的工人,我该如何重新启动它们?
要手动修剪工人,请包含 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。
为避免工人死亡,请使用 , 编译您的 php 以pcntl_fork
在分叉中执行您的作业,并将它们与工人隔离。
首先找到工作人员列表:
这包含根据命令行中的php-resque doc
类型的Resque_Worker::all();
工作人员 ID
`kill workers id`