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)

最新更新