2011-10-19 16 views
0

私は日常的に第三者からデータをダウンロードするルビータスクを持っています。 このダウンロードしたデータに基づいて、crontabを更新したいとします。Ruby on Rails 3.1 - 日常的にcrontab/cronjobを動的に移植する方法

たとえば、毎朝午前9時に、その日のスケジュールされたタスクのリストを決定したいと思います。

今日、午前9時 - 「タスクA」は午後1時と午後2時に実行する必要があります。ですから、午後1時と2時にcrontabを挿入する必要があります。

明日は、午前9時 - 私は "タスクA"は午後4時に実行する必要があることを知っています。ですから、私は午後4時にcrontabを挿入する必要があります。

どうすればこの問題を解決できますか?どんなおすすめの宝石ですか?

答えて

2

いつもの宝石を見て、イニシャライザファイルにschedule.rbを書く必要があると思います(これはいつでも設定ファイルです)。その後、crontabを「いつでも」コマンドで更新します。

https://github.com/javan/whenever

http://railscasts.com/episodes/164-cron-in-ruby

+0

私も 'whenever'宝石を提案するつもりだったが、私は希望、加えて、@ user1000589は、彼/彼女がタスク(またはを生成する方法を再構築することをお勧めします。 。さらに見る)。情報が提供されているため、どのタスクが実行されているかを判断するアルゴリズムは不明のままです。 –

+0

基本的に、私は1日に1回テレビスケジュールをダウンロードします。私は新しいスケジュールを取得するたびに、私がダウンロードしたショー時間のレコーダーを開始したいと思います。 – ddb

+0

だから、私のcronjobは、表示開始時間のエントリを持っている必要があります。 タスクはレコーダーを開始することです(主にレーキタスクになります)。 – ddb

0
Using Whenever gem 
# In rails 4 
require File.expand_path('../..//config/environment.rb', __FILE__) 

# This is your table by which you will get your new value 
bid_update = DynamicOfferTime.first 

# Now Task As 
every (bid_update.hour_value).hours do 
    puts "This will repeat in every #{bid_update.hour_value} hour" 
end 
関連する問題