gpt4 book ai didi

ruby - sidekiq 取消计划作业列表

转载 作者:数据小太阳 更新时间:2023-10-29 06:39:11 25 4
gpt4 key购买 nike

我有几个这样运行的预定作业:

MyWorker.perform_at(3.hours.from_now, 'mike', 1)

我在想,如果稍后,比如说一个小时后,我想取消这份工作,我会怎么做呢?

最佳答案

我最近写了一些代码来处理这个问题,它可以在我的 sidekiq-status gem 分支中找到。您可以在此处查看或使用它: https://github.com/Robinson7D/sidekiq-status

(目前,您必须将它用作 gemfile 中的 git: 信息,直到项目的主分支实现它)

要使用它,首先要存储 job_identifier:

job_identifier = MyWorker.perform_at(3.hours.from_now, 'mike', 1)

当你想销毁它时,你调用 Sidekiq::Status.cancel 方法:

Sidekiq::Status.cancel job_identifier 

编辑:自写这篇文章以来,我的代码已被 Sidekiq::Status 的主分支接受 - https://github.com/utgarda/sidekiq-status .你不再需要使用我的 fork 。在 Utgarda 的 fork 上,您可以通过调用 unschedule 而不是取消来触发它:

Sidekiq::Status.unschedule job_identifier

此外:您还可以使用标准 Sidekiq gem 删除作业,如下所述:https://github.com/mperham/sidekiq/wiki/API (尽管对于他们的方法,您需要作业计划时间的 unix 时间戳 - 您不能仅使用作业的 ID 进行删除;如果您希望删除没有时间戳的作业,Sidekiq::Status 方法可能适合您).

但是,如果您只想删除一份工作。)

关于ruby - sidekiq 取消计划作业列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16009639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com