gpt4 book ai didi

redis - Rails 5.0 升级后 Sidetiq 不工作

转载 作者:可可西里 更新时间:2023-11-01 11:28:45 25 4
gpt4 key购买 nike

我正在将 Rails 应用程序从 Rails 4.2/ruby 2.2.2 迁移到 Rails 5/ruby 2.4。我遇到的大多数“问题”都可以直接解决,但这个问题让我有点困惑。

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

/.rvm/gems/ruby-2.4.0@rails5.0/gems/ice_cube-0.14.0/lib/ice_cube/validations/minute_of_hour.rb:7: 警告: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: 警告:constant::Fixnum 已弃用

/.rvm/gems/ruby-2.4.0@rails5.0/gems/ice_cube-0.14.0/lib/ice_cube/validations/day.rb:9: 警告: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 依赖项似乎都与最新版本一起安装。

最佳答案

Sidekiq 5 beta 已经发布,应该可以很好地与 Rails 5 配合使用

关于redis - Rails 5.0 升级后 Sidetiq 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42653295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com