繁体   English   中英

红宝石在铁轨上的Cron工作不起作用

[英]Cron job in ruby on rails not work

我遵循了railscast http://railscasts.com/episodes/164-cron-in-ruby,但我似乎无法使其正常工作。

  • 我的配置中有schedule.rb。
  • 我希望每天在主页上刷新我的Database.count。
  • 我在文件夹中找不到deploy.rb。 它在哪里?

为了进行测试,我将其更改为每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中。 缺少了什么?

我使用过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. 您需要Capfile和config / deploy.rb才能使用Capistrano和Whenver部署代码。 您可以通过运行capify .获得此capify . ...您最有可能观看capistrano部署的相关内容
  2. 每当使用配置如下:

schedule.rb

every 1.day, :at => '4:30 am' do 
  runner 'Rails.cache.clear'
end

我真的不认为rake "pages_controller:home不会起作用,除非您已经在其他地方创建了它。我进一步假设您正在缓存此页面,这就是为什么您需要刷新缓存。

最后,您将环境设置为开发环境,这使我认为您没有部署此环境,而只是想重置缓存的主页...因此,只需运行rake cache:clear

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM