Sidekiq perform_later 等待时间后入队

Sidekiq perform_later enqueue after waiting time

我需要在后台向 运行 添加作业,我可以通过 MyJob.perform_later(args) 轻松完成。

但是在排程之前我需要一些等待时间,比如1分钟。

因此,如果我安排作业,它应该会在 1 分钟后排队。

我能想到的一个解决方法是在我的工作中增加睡眠时间。 例如:

class MyJob < ApplicationJob
  def perform(args)
    sleep 1.minute
    code
    more code
    more code
  end
end

它立即入队但在执行时休眠(不是我要找的)。 应该有更好的方法来实现这一点。

好吧,你可以设置一个等待选项,比如 MyJob.set(wait: 1.minute).perform_later

通过设置等待,作业将在 1 分钟后排队。

参考:https://guides.rubyonrails.org/v4.2/active_job_basics.html#enqueue-the-job