首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php-resque:如何杀死一个特定的任务?

php-resque:如何杀死一个特定的任务?
EN

Stack Overflow用户
提问于 2018-08-28 22:23:19
回答 1查看 200关注 0票数 0

我使用的是php-resque库,可以使用以下代码创建和跟踪作业。

代码语言:javascript
复制
$token = Resque::enqueue('queue', 'Job', NULL, true);

$statusTracker = new Resque_Job_Status($token);
$status = $statusTracker->get();

但是考虑到enqueue方法返回的令牌,如何停止作业呢?

我在项目页面上找到了this,但它不使用作业令牌来停止作业,而是使用工作id。

考虑到我可能有多个活动的worker,我如何才能找到正在执行所请求工作的worker id?

EN

回答 1

Stack Overflow用户

发布于 2018-08-29 18:38:03

据我所知,Resqueue不支持“中止”或“停止”作业。,但是,如果你能设法将cancel操作保存在某种数据库中,那就没问题了。您可以在performAction()中执行额外的检查。就像这样;

代码语言:javascript
复制
class My_Job {
    public function perform() {
        $wasCanceled = true;
        if( $wasCanceled ) {
            throw new Exception("Job was cancelled");
        }

        // Perform job stuff.
    }
}

最后但并非最不重要的一点是,当作业在取消之前已经执行时,这可能并不总是有效的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52060194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档