检索其中sidekiq worker的预定日期

问题描述 投票:0回答:1

让我们有很多工作排队等候某个日期my_date

这个完全相同的日期有很多工作,其中一些工作仅在他们的scheduled_date后20分钟工作。

一旦我使用perform方法,如何检索此预定日期?

ps:我无法将此scheduled_date作为params传递,因为它是一个Cron作业(我只能传递静态参数)

ps2:github问题https://github.com/mperham/sidekiq/issues/3945

编辑:现在这里是一个部分答案,仍然不满意(例如,不适用于重试):

# wait for Sidekiq::Workers to be updated (5 sec)
sleep 8
the_exact_date = Time.at(Sidekiq::Workers.new.find { |_, __, w| w["payload"]["jid"] == jid }[2]["run_at"])

编辑2:sidekiq cron的当前PR完全解决了我的问题:https://github.com/ondrejbartas/sidekiq-cron/pulls

ruby-on-rails ruby sidekiq
1个回答
0
投票

似乎有一个enqueued_at强制性的论点传递给工作,我相信你正在寻找的。

如果您正在寻找工作开始的时间,那么在执行方法的开头只需要Time.current

有关官方文档,请参阅https://github.com/mperham/sidekiq/wiki/Job-Format#job

© www.soinside.com 2019 - 2024. All rights reserved.