在Rails上,如何使用delayed_job运行一个简单的行?

时间:2010-09-02 21:05:42

标签: ruby-on-rails delayed-job

http://github.com/collectiveidea/delayed_job

假设我刚开始一个全新的Rails项目,并希望每1分钟运行一次:

puts "Time is now #{Time.now}"

如何将其添加到项目中?

自述文件说:

class NewsletterJob < Struct.new(:text, :emails)
  def perform
    emails.each { |e| NewsletterMailer.deliver_text_to_email(text, e) }
  end    
end  

Delayed::Job.enqueue NewsletterJob.new('lorem ipsum...', Customers.find(:all).collect(&:email))

但你应该把这个内容放在哪里?你运行一次入队吗?你如何设置开始时间和频率?

1 个答案:

答案 0 :(得分:1)

delayed_job是后台任务的宝石。你需要一个调度工具。我推荐http://github.com/javan/whenever

http://www.ruby-toolbox.com/categories/scheduling.html