Rails的ActiveJob工作与sidekiq延迟6/10秒

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

我使用Rails ActiveJob与Sidekiq。我有一个应该在5秒后执行工作。

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

只有5秒作业后仍然未跑。当我在那5秒后sidekiq Web界面看起来工作是存在的,它说:还没有入队。关于另外6至10秒后,工作得到enqeued并立刻执行。为什么有这种延迟?当我用现在进行这种延迟是不存在的。

这是我的工作:

class UserArrivalJob < ActiveJob::Base
  queue_as :default

  def perform(user, planet)
    user.planet = planet
    user.save
  end
end
ruby-on-rails sidekiq rails-activejob
2个回答
2
投票

阅读here。基本上我觉得你sidekiq轮询每10秒运行一次,当它池,它挑选工作。


0
投票

BCD是正确的。我设置了sidekiq配置来运行轮询每2秒。

环境/ development.rb /环境/ production.rb

Sidekiq.configure_server do |config|
  config.average_scheduled_poll_interval = 2
end
© www.soinside.com 2019 - 2024. All rights reserved.