我的Gemfile.lock具有以下配置:
sidekiq (6.0.3)
connection_pool (>= 2.2.2)
rack (>= 2.0.0)
rack-protection (>= 2.0.0)
redis (>= 4.1.0)
,我的工作如下:
class ApplicationExportJob < ActiveJob::Base
include Sidekiq::Worker
sidekiq_options retry: 1, queue: 'high_priority'
def perform(*args)
my_service.initialize
my_service.build_csv
end
end
文档指出,在最新版本的sidekiq中,可以跳过worker包含步骤,并且sidekiq选项将直接起作用。但是我遇到了错误“ Sidekiq :: Worker无法包含在ActiveJob中”,这是较早版本的已知情况。我该如何工作?
答案 0 :(得分:0)
该错误是不言自明的。删除包含。
ActiveJob中的 sidekiq_options
在Rails <6.0.2。中不起作用。
答案 1 :(得分:0)
需要明确的是,当您配置队列适配器时,您是在您的环境(生产)中执行此操作:
config.active_job.queue_adapter = :sidekiq
这将告诉 ActiveJob 使用 sidekiq 作为其作业运行器(Rails 中的默认运行器不适合生产)。
随着 ActiveJob 的引入,您不再需要显式地包含帮助器