Rails定时任务

Posted 梦里不知身是客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails定时任务相关的知识,希望对你有一定的参考价值。

Rails定时任务

有一个gem包whenever 是用来写定时任务的,他的作用主要是将ruby语法转换成crontab的形式,所以本质上还是用crontab来实现定时任务的。

  • 检查系统中是否有crontab # 默认都有
  • 检查服务是否启动 service cron status
  • 启动服务 service cron start
  • 停止服务 service cron stop
  • 重启服务 service cron restart

安装whenever

  • 在Gemfile 中 gem \'whenever\', :require => false
  • 生成config/schedule.rb文件 执行 wheneverize

执行周期任务

  • 添加周期任务

    schedule.rb文件中添加

    set :environment, :development # 设置执行环境为开发环境
    every 2.minutes do  # 每隔2分钟执行一次 若是1分钟则是 1.minute (单数)
      rake "mv_log"  # 执行
    end
    
  • 执行周期任务 ,在rails项目下

    whenever -i # 更新schedule.rb中的任务到cronjob中

    whenever -w # 执行周期性任务

    可以合并为 whenever -iw

    此时定时任务就在运行了,通过 crontab -l查看正在运行的定时任务

    如何编写任务 rake xxx

以上是关于Rails定时任务的主要内容,如果未能解决你的问题,请参考以下文章

为 memcached 和 Rails 组合片段和对象缓存的最佳方式

ruby RubySteps 012 - Rails - 迷你框架片段

如何在 Rails 中清理 sql 片段

Rails:旧数据与新数据不匹配时如何更新片段缓存

在每个用户的Rails中使用片段缓存

基于XML和注解的Spring定时器