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