论坛首页 编程语言技术论坛

简简单单在rails中做定时任务

浏览 12517 次
精华帖 (0) :: 良好帖 (6) :: 新手帖 (16) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-07-27   最后修改:2009-09-23

       在平时的开发过程中,经常会遇到一些定时任务的需求,比如定时报表的生成,一般是在夜间的某个时间段进行,或者是每10分钟清空一些临时表的任务,记得以前有人提出过一个 BackgrounDrb 问题,个人认为BackgrounDrb不是那么好用,Robbin提出的是利用linux shell做,由于unix操作系统自带有进程调度系统cron,所以定时执行rake就可以了,但如果做一些复杂的定时操作,那么势必会造成复杂的shell脚本,个人认为一、不利于维护,二、在切换开发环境的时候不是很方便,本着能用简单的技术解决的问题就不要用复杂的技术的原则,推荐一下rufus-scheduler  http://rufus.rubyforge.org/rufus-scheduler/ ,貌似这个是日本人写的,看看它的使用说明,感觉作者很有匠人的气质,这个东西用起来真贴心,这也充分说明了拿ruby做系统维护也是一件体验很棒的事情

 

引用

gem install rufus-scheduler



在initializers文件夹下新建一个文件task.rb

引用


require 'rubygems'
require 'rufus/scheduler'
scheduler = Rufus::Scheduler.start_new

scheduler.every("2s") do
   puts Time.now
end



over,基本上可以解决我们日常中的定时任务,rufus-scheduler当然也支持某个时间点做某事,某个时间段做某事等等,感兴趣的朋友可以玩玩这个

 

   发表时间:2009-07-27  
惊现老大发贴。

ruby或者说rails中的定时任务的解决方案太多了,我目前见过的就不少。
0 请登录后投票
   发表时间:2009-07-27  
目前看来,ruby的程序都还不太适合作为长期跑的进程存在.
它们的使用方式还是运行一段时间就exit,需要的话再restart比较好.
0 请登录后投票
   发表时间:2009-07-27  
有了crontab,为啥要用这个?
0 请登录后投票
   发表时间:2009-07-28  
whenever 也不错
0 请登录后投票
   发表时间:2009-07-28  
Raecoo 写道
whenever 也不错

whenever貌似就是把ruby的东西翻译成crontab...
0 请登录后投票
   发表时间:2009-07-28  
本来是用whenever挺好的
现在项目要在window下跑定时任务:(
0 请登录后投票
   发表时间:2009-07-28  
关于定时操作,记得在rubyinside里边就见过不少。少说有3,4个了
用cron就非常方便了,定期跑跑ruby脚本,rake任务就ok了
0 请登录后投票
   发表时间:2009-07-29  
mccxj 写道
关于定时操作,记得在rubyinside里边就见过不少。少说有3,4个了
用cron就非常方便了,定期跑跑ruby脚本,rake任务就ok了


为什么rails里面有个database migrate?一样可以用sql脚本完成啊

0 请登录后投票
   发表时间:2009-07-29  
下一站,火星 写道
mccxj 写道
关于定时操作,记得在rubyinside里边就见过不少。少说有3,4个了
用cron就非常方便了,定期跑跑ruby脚本,rake任务就ok了


为什么rails里面有个database migrate?一样可以用sql脚本完成啊


一直也没有找到合适的定是任务?
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics