【发布时间】:2018-08-29 18:38:03
【问题描述】:
我正在使用php-resque 库,可以使用以下代码创建和跟踪作业。
$token = Resque::enqueue('queue', 'Job', NULL, true);
$statusTracker = new Resque_Job_Status($token);
$status = $statusTracker->get();
但是鉴于enqueue方法返回的token,如何停止作业呢?
我在项目页面上找到了this,但它不使用作业令牌来停止作业,而是使用工人ID。
考虑到我可能有不止一名工作人员处于活动状态,我如何才能找到正在执行所请求工作的工作人员 ID?
【问题讨论】:
-
你说的“被停止”是什么意思,你的意思是你不想像出队那样运行作业吗?
-
嗯,是的,但是即使工人已经开始工作,出队也有效?或者它只适用于尚未执行的作业?
-
您可以在作业中抛出异常,以便将其标记为“失败”。见:github.com/chrisboulton/php-resque#onfailure
-
很抱歉,我没有说明我不想从内部停止工作。用例是用户启动了很长时间的作业,然后想要停止它。如何使用 resque 提供此功能?
标签: php php-resque