我有一个Rails应用程序,想通过随时随地执行一个cron作业(每5分钟开发一次)......
我有一个rake任务:lib/tasks/appname.rake
里面的代码是:
namespace :appname do
desc "Importing data overnight"
task import_data_overnight: :environment do
puts "importing..."
Object.import_data
end
end
在终端我跑的时候:
$bundle exec rake appname:import_data_overnight
我的开发数据库完美更新。
添加随时随地的宝石这就是我放入的内容:
Gemfile:gem 'whenever', require: false
进入我的项目
跑:$wheneverize .
在config/schedule.rb
内:
set :environment, :development
set :output, {:error => "log/cron.log", :standard => "log/cron.log"}
every 5.minutes do
rake "appname:import_data_overnight"
end
保存文件,然后在终端内运行:
$whenever --update-crontab --set environment=development
这是我cron.log
中的输出:
Jun 4 13:05:00 Jatins-MacBook-Pro.local /usr/sbin/cron[34183]: (jatin) CMD (/bin/bash -l -c 'cd /Users/jatin/dev/apps/appname && RAILS_ENV=development bundle exec rake appname:import_data_overnight --silent >> log/cron_log.log 2>> log/cron_error_log.log')
看起来它正在运行,但是当我检查我的数据库时没有任何活动的迹象,没有触及任何记录。
有什么想法吗?