2010-01-13 51 views
2

我正在构建一个Rails项目,该项目具有我正在使用Rufus Scheduler进行管理的cron类型作业。我有两个关于如何在Rails中适当地设置它的问题:我应该在rails中放置后台进程?

  1. 哪里是放置工作代码的最佳位置?
  2. 我应该在哪里放置Rufus代码来安排工作?我应该如何启动它?

回答

2

要控制我会创造一个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目录,但是这对于一个文件来说可能会过度。

+0

虽然这个解决方案很简单,但是当您在独角兽或乘客等多进程服务器上部署您的rails应用程序时会出现问题,您的工作可能会执行多次。 – Antony 2013-10-02 17:15:03