0
我在延迟工作添加PDF生成任务像下面如何处理环路延迟工作
@employe.each do |em|
em.details.each do |detail|
Delayed::Job.enqueue GeneratePdf.new(detail)
end
end
这工作得很好,但它需要像2分钟遍历所有聘用过的员工和他们的详细资料,并完成请求。
我该如何缩短这个时间?或者我如何添加循环延迟作业。我现在的生成PDF类
class GeneratePdf < Struct.new(:detail)
def perform
filename = detail.id.to_s
pdf = EmployeDetailsPdf.new(detail) #this generates a pdf
pdf.render_file(filename + ".pdf")
end
end
你能不能传递GeneratePdf的执行动作里面的delayed_job和循环内的员工? –
是的,但是在那种情况下,整个循环立即运行,并且所有的pdf都是一次生成的,因为整个事物只被视为一个工作。它虽然没有帮助 – asdfkjasdfjk