簡體   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