1
我怎么能在sidekiq做那样的事情?sidekiq延迟两种方法
Gateway::AddUser.delay.new(6).call
现在,Gateway::AddUser.delay.new(6)
返回一个字符串,并call
方法试图在其上运行。但我想打电话只是Gateway::AddUser.new(6).call
延迟
我怎么能在sidekiq做那样的事情?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)
我可以走这种方式,但它看起来有点复杂:我会让我的模特变胖 – asiniy
为什么这会让你的模特变胖?无论如何,你可以把代码放在你喜欢的任何其他模块或类中。或者你可以创建一个工人类。 –
模型不响应延迟动作,对吗?工人阶级看起来是完美的解 – asiniy