我有一个服务对象,#call
执行昂贵的操作。我想使用Sidekiq来执行此操作。
我正在使用sidekiq和sidekiq-delay。 以下给出了一个错误:
MyService.sidekiq_delay.new(arg).call
因为当我调用.sidekiq_delay
并链接另一个方法时,它会返回一个字符串。如何使用Sidekiq延迟实例化#call
和MyService
,而不必创建另一个工作者?
修改
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>
答案 0 :(得分:0)
您需要实例化然后延迟它。
MyService.new(arg).delay.call
修改强>
MyService.new(arg)
应该回复find(id)
方法。如果不是,则需要撰写Custom Workers