我正在使用delayed_jobs gem。假设,我有一个带有以下代码的ArticleController
@articles.each do |ar|
#call send mail method and add to delay
#call createpdf method and add to delay
end
和另一个类BackgroundJobs.rb
class BackgroundJobs < ActiveRecord::Base
def sendmail(article_id)
#code to send mail
end
def createpdf((article_id))
#code to generate pdf
end
end
如何将发送邮件和createpdf方法添加到articlecontroller代码中的延迟作业。
答案 0 :(得分:1)
首先,我会在BackgroundJobs
中创建类方法而不是实例方法:
class BackgroundJobs < ActiveRecord::Base
def self.sendmail(article_id)
#code to send mail
end
def self.createpdf(article_id)
#code to generate pdf
end
end
然后直接在控制器中调用它们:
@articles.each do |ar|
BackgroundJobs.delay.sendmail(ar.id)
BackgroundJobs.delay.createpdf(ar.id)
end