背景作业与救援调度

时间:2014-02-06 10:36:22

标签: ruby-on-rails-4 background-process resque

我在Ubuntu VPS中托管了Ruby on Rails 4.0和PostgreSQL应用程序。在这个应用程序中,我想根据数据库中的数据发送电子邮件。例如,后台作业每小时检查一次表内容并依赖于内容向用户发送电子邮件。我决定用Resque做这项工作。 我怎样才能做到这一点? 我应该在Rails应用程序或独立服务中做什么? 我该如何安排这份工作?

2 个答案:

答案 0 :(得分:1)

我建议你尝试更多选项

1. Cron:任何unix开发人员根据某个时间间隔运行任务的首选方法之一。 here更多地了解

仅供参考:如果您在理解cron设置时遇到问题,可以使用gem为您执行相同的操作whenever

2. Resque-Scheduler:当然你错过了一个Resque插件,它提供的功能与你需要的resque-scheduler完全相同。它也为您提供了类似cron的设置 请查看以上链接以获取更多信息

希望这有帮助。

答案 1 :(得分:0)

我不使用Resque,因为我想在Ubuntu服务器中按计划时间(每小时)进行一个进程。例如,每小时检查表格内容并通过电子邮件向用户发送警报。 我通过守护进程和rufus-scheduler进行调度。

Process.daemon(true)
task_test = TaskTest.new
pid = Process.fork do
  task_test.task
end

 class TaskTest
  def task
    scheduler = Rufus::Scheduler.new
    scheduler.every '1h' do
      msg = "Message"
      mailer = MailerProcess.new
      mailer.send_mail('email-address', 'password', 'to-email', 'Subject', msg)
      puts Time.now
    end
    scheduler.join
  end
end