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