Rails ActiveJob Job with sidekiq延迟6/10秒

时间:2015-10-29 10:25:22

标签: ruby-on-rails sidekiq rails-activejob

我在Sidekiq上使用Rails ActiveJob。 我有一个应该在5秒后执行的Job。

UserArrivalJob.set(wait: 5.seconds).perform_later(user, planet)

仅在5秒后,作业仍然没有运行。 当我在5秒钟之后查看sidekiq网络界面时,工作就在那里,它说:尚未入队。在大约另外6到10秒之后,工作变得很快并立即执行。 怎么会有这种延迟? 当我现在使用执行时,此延迟不存在。

这是我的工作:

class UserArrivalJob < ActiveJob::Base
  queue_as :default

  def perform(user, planet)
    user.planet = planet
    user.save
  end
end

2 个答案:

答案 0 :(得分:2)

阅读here。基本上我认为你的sidekiq轮询器每隔10秒就会运行一次,它会在它汇集时选择它。

答案 1 :(得分:0)

bcd是对的。我将sidekiq配置设置为每2秒运行一次轮询。

environment / development.rb / environments / production.rb

Sidekiq.configure_server do |config|
  config.average_scheduled_poll_interval = 2
end