我正在使用延迟方法在控制器中创建延迟作业,如下所示:
JobProcessor.delay(:run_at => Time.now).process_job(options)
现在在我正在进行的process_job方法中
chunks = options[:collection].each_splice(10).to_a
chunks.each do |chunk|
self.delay(:run_at => Time.now).chunk_job
end
当我向网址
发送请求时,这给了我错误stack level too deep
可能是什么问题?请帮忙。
答案 0 :(得分:1)
我能够通过做一些改变让它对我有用。
process_job
更改为实例方法所以现在我的代码看起来像
JobProcessor.new.process_job(options)
在控制器中,在JobProcessor
类里面我有
class JobProcessor
def process_job(options)
chunks = options[:collection].each_splice(10).to_a
chunks.each do |chunk|
self.class.delay(:run_at => Time.now).chunk_job(options)
end
end
handle_asynchronously :process_job, :run_at => Proc.new { 2.seconds.from_now }
def self.chunk_job(options)
# perform chunk job here
end
end
这适合我。