我跟着railscast http://railscasts.com/episodes/164-cron-in-ruby,但我似乎无法使它成功。
出于测试目的,我将其更改为每2秒。
[schedule.rb]
every '2 * * * *' do
rake "pages_controller:home"
end
[pages_controller.rb]
class PagesController < ApplicationController
def home
@title = "Home"
@companies = Company.find(:all, :limit => 20)
@count = Company.count
end
我已经把
gem 'whenever', :require => false
在我的gemfile中。遗失了什么?
答案 0 :(得分:0)
我使用过cron作业但是我把它作为rake任务运行,请你试试吧
every 3.minutes do
set :environment, 'development'
rake "daily",:output => {:error => 'error.log', :standard => 'cron.log'}
end
我的任务就像
require 'rubygems'
task :daily => :environment do
puts "i am fine"
# do your code
end
如果cron作业运行正常,那么cron.log中将没有任何内容。否则它会显示
发生任何错误,此文件将在您的应用程序根目录中生成。
试试..
答案 1 :(得分:0)
所以......几件事。
capify .
得到这个......你最有可能在capistrano部署中观看railscast schedule.rb
every 1.day, :at => '4:30 am' do
runner 'Rails.cache.clear'
end
我真的不认为rake "pages_controller:home
会起作用,除非这是你已经在其他地方创建过的东西。我进一步假设您正在缓存此页面,这就是您需要刷新缓存的原因。
最后,你将环境设置为开发,这让我觉得你没有部署这个,而只是想重置缓存的主页...所以只需运行rake cache:clear