2011-01-06 14 views
0

管理ページから私のcronジョブを制御したいと思います。
私は自分のデータベースに自分のcronjobを持っています。私は自分のcrontabを "オンザフライ"で作成したいと考えています。Ruby/Rails - いつでもgem - ループcronタスク

はここに例を示します

require "#{RAILS_ROOT}/config/environment.rb" 
Cron.all.each do |cron| 
    if cron.at.blank? 

    every eval(cron.run_interval) do 
     cron.cmd 
    end 

    else 

    every eval(cron.run_interval), :at => cron.time do 
     cron.cmd 
    end 

    end 
end 

every 1.day do 
    command "whenever --update-crontab" 
end 

しかしを出力しないときは常にループ内での作業、唯一の「静的」1のいずれか。が私のループを '理解' するたびに、私はを作ることができますどのように

0 0 * * * whenever --update-crontab 

答えて

1

はおそらく、例えば、アップあなたのeval文が高く移動する必要があります。

 
eval <<-EVAL 
    every #{cron.run_interval} do 
    #{cron.cmd} 
    end 
EVAL 

は、あなたのcron.cmdは、「コマンドの 『ls -a』」のような何かがあると仮定すると。

+0

ありがとうございました。私は<< EOSを試しましたが、<< -EBALについてはわかりませんでした。 :) – Frexuz

+1

文字列の最初と最後に一致する限り、任意の名前を使用できます。<<-RANDOM_NAME ... RANDOM_NAME。キーはそれの前にevalを持つことです。 –

+0

それは面白いです:D – Frexuz

関連する問題