因为有个需求,“用户每天都要完成一个log的记录,如果没有完成的要通过邮件提醒;”
所以考虑使用whenever每天固定在23点检查,用户是否有做相应的操作。
whenever 安装:
gem 'whenever', :require => false #在Gamfile里面添加
然后就是进入程序的根目录底下运行:
wheneverize
这样whenever会给你初始化创建config/schedual.rb文件;
然后在该文件里面添加一下内容:
set :output, "#{path}/log/whenever.log" #设置日志输出文件
job_type :rake_no_env, "cd :path && rake :task :output" #自定义任务
every 1.day,:at=>'10:45am' do
rake_no_env "check_daylog" #每天早上:10:45运行 底下命令
end
这样会产生一下的linux计划任务:
引用
45 10 * * * /bin/bash -l -c 'cd /home/user/rails/app/root && rake check_daylog >> /home/user/rails/app/root/log/whenever.log 2>&1'
[color=red]
当然了,你也可以利用Rails的runner去执行一个静态方法,而不是使用rake;
可以使用命令
every 1.day,:at=>'10:45am' do
runner "DayLog.check_daylog" #执行DayLog的静态方法或者modual:check_daylog;
end
[/color]
可以在程序根目录底下用
引用
whenever
命令查看任务,但是需要运行
引用
whenever -i
来更新添加到系统中;
可以使用linux的
引用
crontab -l
命令查看当前系统的所有cron job。
然后在Rails/app/root/lib/tasks目录底下添加文件用来写task;
require 'fileutils'
require 'open3'
#以上2个尚未验证是否需要require进来。在rails里面估计不需要;
desc "check daylog"
task :check_daylog do
check_file = "#{Rails.root}/app/mailers/check_daylog.rb"
FileUtils.cd(Rails.root) do
Open3.popen3("rails c #{Rails.env} < #{check_file} ") do |stdin, stdout, stderr|
puts stdout.read
puts stderr.read
#在控制台输出运行信息;
end
end
end
#{Rails.root}/app/mailers/check_daylog.rb文件内容将会被导入到rails的控制台太里面执行;
whenever -c [file]
用来取消任务;
分享到:
相关推荐
该资源包包括在Linux安装Ruby on Rails所需的包,以及安装步骤文档
jquery-rails, 一个 gem,用于自动使用jQuery和 Rails 3 railsjQuery 面向 Rails 如此伟大。这里 gem 提供:jQuery 1.7.2jQuery UI 1.8.18 ( 仅适用于 javascript )jQuery UJS适配器assert_select_j
rails, Ruby on Rails 欢迎使用 RailsRails 是一个web应用程序框架,它包括根据 Model-View-Controller ( MVC ) Pattern 创建数据库备份的web应用程序所需的所有内容。理解 MVC Pattern 是理解 Rai
3 rails # gem install rails -v=2.3.11 4 passenger # gem install passenger passenger-install-apache2-module 安装完成后按照提示将下面的内容添加到etc/httpd/httpd.conf LoadModule pa
Rails 3 in Action 2011年9月新鲜出炉,针对最新的Rails 3.1进行说明
Ruby+on+Rails+3+Tutorial.pdf 应用Rails进行敏捷Web开发第4版.pdf (Agile Web Development with Rails) Rails.Recipes.Rails.3.Edition.pdf
Windows7_Cygwin_Git_RVM_Ruby1.9.3_Rails3_MongoD B_Nginx_Unicorn_Rspec_Guard_Spork(2-Ruby on Rails3 安装配置
Rails3消息队列系统 Sidekiq
rails3的英文文档
turbo-sprockets-rails3, 加速你的Rails 3资产 用于 Rails 3.2.x的涡轮链轮 通过只根据源文件的哈希来重新编译已经更改的资产,从而加快 Rails 3 rake assets:precompile的速度只编译一次以生成指纹和非打印的资产...
NULL 博文链接:https://michael-roshen.iteye.com/blog/1731372
Rails3的ActiveRecord 查询API.doc
rails常用命令,例如新建rails项目,新建controller、model 等等
NULL 博文链接:https://hlee.iteye.com/blog/587000
如何在Linux下搭建ruby on rails
The Rails™ 3 Way is a comprehensive resource that digs into the new features in Rails 3 and perhaps more importantly, the rationale behind them. —Yehuda Katz, Rails Core The Bible for Ruby on ...
首先,whenever是基于linux的cron服务的,所以,在windows平台上没有直接的方法使用该gem。whenever严格来说应该算一个cron的翻译器,将ruby代码翻译为cron脚本,从而将周期性任务转交给cron实际去完成。对于精通...
ruby on rails轻松使用
使用Aptana+Rails开发Rails Web应用 有Aptana的安装配置等等,中文