ruby Whenever 定时任务

Whenever必须使用liunx开发环境,在windows下无法调试及测试。

rufus-scheduler定时任务,使用rails s启动则可以正常启动并执行,使用nginx代理后无法启动任务,原因未知。。。。


github地址:https://github.com/javan/whenever


1,安装

gem 'whenever', :require => false

下载gem,并执行安装gem

执行gem install --local   

执行  wheneverize .

2,whenever有四种方式,考虑使用哪一种(之前使用runner,由于粗心  配置不合适,后来换用rake方式)

  1. rake
  2. runner
  3. command
  4. script

下面先以rake方式进行说明:

在lib/tasks 下新建一个任务,例如:jobs

lib/tasks/jobs.rake

# encoding: utf-8

namespace :[namespace] do
    desc "這是一個rake" #此處可自行輸入task的描述

            task :[your task name] => :environment do
                    [your code here]
            end
    end
end

3,可以进行测试

rake -T #會列出剛新增的rake
bundle exec rake [namespace]:[task] #執行rake

4,创建定时任务

编辑config/schedule.rb进行设定

config/schedule.rb

env :PATH, ENV['PATH'] #要用bundle時必須要加

set :output, 'log/cron.log' #設定log的路徑

every 1.day, :at => '1:00 am' do
    rake "[剛剛的namespace名稱]:[剛剛的task名稱]"
end
5,添加至corn

whenever -w  即可添加此任务至corn中

whenever -c 清楚corn任务列表

6,查看corn任务

crontab -l 查看corn任务

crontab -e 修改corn任务

住:一般使用环境都是development   修改corn语句环境

  1. 若排程沒有正常執行,可以去開啟 config/schedule.rb 中 :output 設定的log檔位置,此案例中為 log/cron.log,檢查是否有錯誤訊息。
  2. 若錯誤訊息為 bundle command not found 請在 config/schedule.rb 中加入 env :PATH, ENV['PATH']







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值