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
我正在使用 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