2
我正在构建一个Rails项目,该项目具有我正在使用Rufus Scheduler进行管理的cron类型作业。我有两个关于如何在Rails中适当地设置它的问题:我应该在rails中放置后台进程?
- 哪里是放置工作代码的最佳位置?
- 我应该在哪里放置Rufus代码来安排工作?我应该如何启动它?
我正在构建一个Rails项目,该项目具有我正在使用Rufus Scheduler进行管理的cron类型作业。我有两个关于如何在Rails中适当地设置它的问题:我应该在rails中放置后台进程?
要控制我会创造一个config/initializers/task_scheduler.rb
调度:
task_scheduler = Rufus::Scheduler.start_new
task_scheduler.every("1m") do
Something.to_do! # Do something every minute!
end
现在的Something.to_do
代码,那种依赖于它做什么。也许这是一个数据模型,它应该在app/models
目录中,但如果它是更通用的,你可能想把它放在lib/
。如果您结束了一些计划任务,您可能需要创建一个app/scheduled_tasks
目录,但是这对于一个文件来说可能会过度。
虽然这个解决方案很简单,但是当您在独角兽或乘客等多进程服务器上部署您的rails应用程序时会出现问题,您的工作可能会执行多次。 – Antony 2013-10-02 17:15:03