我正在尝试将选项发送给 sidekiq 工作人员。Sidekiq 正在使用 Activejob
class User
def do_background_task(object, options={})
MyJob.perform_later(id, object.id, options )
end
end
class MyJob < ActiveJob::Base
queue_as :default
def perform(user_id,object_id,options={})
user = User.find(user_id)
object = Object.find(user_id)
selector = options[:selector] if options[:type]
do some things....
if selector == 'true'
do some other things.....
end
end
end
这不起作用,似乎是因为 ActiveJob 或 Sidekiq 不喜欢接收键控哈希。例如,@user.do_background_task(@object, selector: true)
导致错误NoMethodError: undefined method '[]' for nil:NilClass
。
将密钥传递给队列的公认方式是什么?