使用Sidekiq延迟方法链

时间:2015-04-10 06:02:34

标签: ruby-on-rails sidekiq

我有一个服务对象,#call执行昂贵的操作。我想使用Sidekiq来执行此操作。

我正在使用sidekiq和sidekiq-delay。 以下给出了一个错误:

MyService.sidekiq_delay.new(arg).call

因为当我调用.sidekiq_delay并链接另一个方法时,它会返回一个字符串。如何使用Sidekiq延迟实例化#callMyService,而不必创建另一个工作者?

修改

MyService.sidekiq_delay.new(arg).call给了我以下错误

NoMethodError: undefined method `call' for "06139e957f4e73a7a84d9290":String 

MyService.new(arg).sidekiq_delay.call给我以下错误:

NoMethodError: undefined method `sidekiq_delay' for #<MyService:0x007fa81d250a40>

1 个答案:

答案 0 :(得分:0)

您需要实例化然后延迟它。

MyService.new(arg).delay.call

修改

MyService.new(arg)应该回复find(id)方法。如果不是,则需要撰写Custom Workers