0

railscast http://railscasts.com/episodes/164-cron-in-rubyをフォローしましたが、うまくいかないようです。

  • config に schedule.rb があります。
  • ホームページで Database.count を毎日更新したいと考えていました。
  • フォルダーに deploy.rb が見つかりません。それはどこにある?

テスト目的で、2秒ごとに変更しました。

[スケジュール.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

私の宝石ファイルで。何がなくなったのですか?

4

2 に答える 2

0

だから...カップルのこと。

  1. Capistrano と Whenver を使用してコードをデプロイするには、Capfile と config/deploy.rb が必要です。実行することでこれを取得できますcapify .... カピストラーノの展開に関するレールキャストを見る必要があります
  2. 次のように構成されているときはいつでも:

スケジュール.rb

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

rake "pages_controller:homeこれが他の場所ですでに作成されているものでない限り、うまくいくとは本当に思いません。さらに、このページをキャッシュしていると想定しているため、キャッシュを更新する必要があります。

最後に、環境を開発に設定しています。これは、これを展開しているのではなく、キャッシュされたホームページをリセットしたいだけだと思います...だから実行するだけですrake cache:clear

于 2012-04-03T15:13:37.363 に答える
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 には何も記録されません。

エラーが発生すると、このファイルがアプリのルート ディレクトリに生成されます。

それを試してみてください..

于 2012-04-03T14:30:39.470 に答える