Ruby on rails 如何添加两个延迟的作业
我用的是延迟工作宝石。假设我有一个ArticleController,代码如下Ruby on rails 如何添加两个延迟的作业,ruby-on-rails,delayed-job,Ruby On Rails,Delayed Job,我用的是延迟工作宝石。假设我有一个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_
@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
如何将send mail和createpdf方法添加到articlecontroller代码中的延迟作业中。首先,我将在BackgroundJobs中创建类方法而不是实例方法:
由于BackgroundJobs似乎没有执行这2种方法的其他功能,您可以考虑将它们转换为服务。
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