1
で毎晩レールジョブのルビーを実行します。 私の質問は、毎晩特定の時間に実行されるように自分の仕事を定義する方法と場所はどこですか? 私は仕事で自分の仕事を呼び出すべきかどうか?もしそうなら、どうしたらいい?は、私はこのような仕事をしている特定の時間
で毎晩レールジョブのルビーを実行します。 私の質問は、毎晩特定の時間に実行されるように自分の仕事を定義する方法と場所はどこですか? 私は仕事で自分の仕事を呼び出すべきかどうか?もしそうなら、どうしたらいい?は、私はこのような仕事をしている特定の時間
遅延ジョブは、主にキューおよびバックグラウンドでタスクを処理するために使用されます。通常、タスクのスケジューリングには好まれません。
あなたの場合は、wheneverをチェックしてください。これはcronジョブで動作するruby gemで、繰り返しタスクをスケジュールします。
ロジックまたはメソッドの呼び出しLdapSyncJob.perform()
をレーキタスクに移動することをお勧めします。設定/ schedule.rbで
、あなたはこのよう
ENV['RAILS_ENV'] = "#{@pre_set_variables[:environment]}"
env :PATH, ENV['PATH']
require File.expand_path(File.dirname(__FILE__) + "/environment")
set :output, "/logs/cron_log_#{ENV['RAILS_ENV']}.log"
every 1.day, :at => '02:30 am' do
command "cd #{Rails.root}/lib/tasks && rake task_calls_peform_code"
end
注何かを行うことができます:更新するとコマンド属し使用してのcrontabを再起動することを忘れないでください。
whenever --update-crontab app --set 'environment=production' #update crontab
service crond restart #restart crontab
あなたは私のschedule.rbにこのようないくつかのことを意味する((すべての1.hoursが LdapSyncJob.perform()終了を)やる)しかし、それは動作しませんでした。 –
私は答えを更新しました、それがあなたを助けてくれることを願っています。 –
これはうまく動作しますが、私はより簡単だったクロノ宝石を使用しました –