Sidetiq无法正常发布Rails 5.0升级

时间:2017-03-07 16:25:08

标签: redis rubygems ruby-on-rails-5 sidekiq sidetiq

我正在从Rails 4.2 / ruby​​ 2.2.2将rails应用程序迁移到Rails 5 / ruby​​ 2.4。我遇到的大多数“问题”都很容易解决,但这个问题让我感到有点难过。

我有一些定期工作,我通过Redis / Sidekiq / Sidetiq发送给工人。它过去工作得非常好。现在,当我启动Sidekiq时,我的定期工作者工作似乎没有“加载”,所以基本上他们没有排队或执行。这曾经只是在我启动Sidekiq时自动发生,但也许我需要先显式实例化这些工作类?如果我手动执行并延迟(例如,执行1秒)一个重复工作者类只有一次,那么这个类开始按照应该的顺序执行重复计划。我手动执行这个“perform_in 1秒”工作后,我确实在Sidekiq中出现错误,但不觉得这是问题所在:

/.rvm/gems/ruby-2.4.0@rails5.0/gems/ice_cube-0.14.0/lib/ice_cube/validations/minute_of_hour.rb:7:warning:constant :: Fixnum已弃用

/.rvm/gems/ruby-2.4.0@rails5.0/gems/ice_cube-0.14.0/lib/ice_cube/validations/hour_of_day.rb:8:warning:constant :: Fixnum已弃用

/.rvm/gems/ruby-2.4.0@rails5.0/gems/ice_cube-0.14.0/lib/ice_cube/validations/day.rb:9:warning:constant :: Fixnum已弃用

以下是我的经常性工作类:

class RecurringWorker
    include Sidekiq::Worker
    include Sidetiq::Schedulable

    recurrence do
        weekly.minute_of_hour(0, 15, 30, 45).hour_of_day(10, 11, 12, 13, 14, 15, 16, 17).day(1, 2, 3, 4, 5)
    end

    def perform
        # Some Code
    end
end

我的初始化程序:

Sidetiq.configure do |config|
    # Clock resolution in seconds (default: 1).
    config.resolution = 1

    # Clock locking key expiration in ms (default: 1000).
    config.lock_expire = 100

    # When `true` uses UTC instead of local times (default: false).
    config.utc = false

    # Scheduling handler pool size (default: number of CPUs as
    # determined by Celluloid).
    config.handler_pool_size = 5

    # History stored for each worker (default: 50).
    config.worker_history = 50
end

所有gem依赖项似乎都安装了最新版本。

1 个答案:

答案 0 :(得分:0)

Sidekiq 5 beta已经出局,应该可以与Rails 5一起使用