Sidekiq - 从现在开始排队要执行的作业 0.seconds

Sidekiq - Enqueuing a job to be performed 0.seconds from now

我正在使用 sidekiq 进行后台作业,我将这样的作业排入队列:

SampleJob.set(wait: waiting_time.to_i.seconds).perform_later(***) ・・・ ①

waiting_time为零时, 它变成了

SampleJob.set(wait: 0.seconds).perform_later(***) 

当然它工作得很好,但我担心性能,因为排队等待参数的工人是由轮询器派生的, 所以我想知道我是否应该在什么时候删除 set(wait: waiting_time.to_i.seconds) waiting_time 为零。

即)

if waiting_time.present?
  SampleJob.set(wait: waiting_time.to_i.seconds).perform_later(***)
else
  SampleJob.perform_later(***)
end ・・・ ②

①和②在性能或速度上有什么不同吗? 提前谢谢你。

没有区别。看起来 Sidekiq 库中已经考虑到了这一点。

https://github.com/mperham/sidekiq/blob/main/lib/sidekiq/worker.rb#L261

# Optimization to enqueue something now that is scheduled to go out now or in the past
@opts["at"] = ts if ts > now