我如何在sidekiq上做类似的事情?
Gateway::AddUser.delay.new(6).call
目前,Gateway::AddUser.delay.new(6)
会返回一个字符串,而call
方法会尝试在其上运行。但我想打电话给Gateway::AddUser.new(6).call
延迟
答案 0 :(得分:3)
就像这样解决:
Gateway::AddUser.delay.perform(6)
perform
方法是:
def self.perform(params)
new(params).call
end
只需将2个方法重写为1 =)
答案 1 :(得分:1)
为什么不把它包装在其他方法中呢?
class User
def self.add_user_via_gateway(attributes)
Gateway::AddUser.new(attributes).call
end
end
User.delay.add_user_via_gatway(attributes)
编辑:
如果您愿意,还可以创建一个工人类。
class AddUserViaGatewayWorker
include Sidekiq::Worker
def perform(attributes)
Gateway::AddUser.new(attributes).call
end
end
AddUserViaGatewayWorker.perform_async(attributes)