9

Railsアプリケーションのタスクをスケジュールするためにいつでも使用しています。

私には次のようなタスクがあります:

every 24.hours do
   command "do_this"
   rake "do_that"
end

私のポイントは、crontabに書き込むと、-wを指定すると、同時に実行される2つの独立したタスクが生成されることがわかります。問題は、どちらも論理的にシーケンスであるということです。つまり、コマンド「do_this」がすでに正常に実行された場合にのみ、rakeタスク「do_that」を実行する必要があります。

コマンド"do_this"&& rake "do_that"のように両方に接続しようとしましたが、構文エラーが発生しました。

  • いつでもタスク間にこの依存関係を作成するためのトリックはありますか?

  • crontabはジョブを同時に、並行して実行しますか、それともキューで同時にスケジュールされたN個のタスクを処理しますか?

4

1 に答える 1

8

私はあなたができることが2つあると思います:

(1)rakeタスクからコマンドを実行します。

task :do_that => :environment do
  system "do_this"
  ...
end

そして、schedule.rbファイルを次のように単純化します。

every 24.hours do
   rake "do_that"
end

(2)コマンドラインからすべてを実行します。

every 24.hours do
  command "do_this && rake do_that"
end
于 2011-05-09T20:50:01.017 に答える