Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何添加两个延迟的作业_Ruby On Rails_Delayed Job - Fatal编程技术网

Ruby on rails 如何添加两个延迟的作业

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_

我用的是延迟工作宝石。假设我有一个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
如何将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