我如何在sidekiq做这样的事情?
Gateway::AddUser.delay.new(6).call
现在,Gateway::AddUser.delay.new(6)
返回一个字符串,call
尝试在其上运行的方法。但我想打电话只是延迟Gateway::AddUser.new(6).call
像这样解决:
Gateway::AddUser.delay.perform(6)
其中perform
方法是:
def self.perform(params)
new(params).call
end
只需将 2 个方法重写为 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)