планирование последовательных задач с каждым драгоценным камнем - PullRequest
7 голосов
/ 08 мая 2011

я использую всякий раз, когда планирую задачи для приложения rails.

У меня есть задача вроде:

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

Когда я пишу ее в свой crontab,всякий раз, когда -w, я вижу, что он генерирует две независимые задачи, выполняющиеся одновременно.проблема в том, что оба логически представляют собой последовательность, то есть задача rake "do_that" должна выполняться только в том случае, если команда "do_this" уже выполнилась успешно.

Я пытался связаться с обоими, как команда "do_this" && rake "do_that", но я получил синтаксическую ошибку.

  • Существует ли какая-либо хитрость для создания этой зависимости между задачами в любом случае?

  • Выполняет ли crontab задания одновременно, параллельно илион обрабатывает N задач, запланированных одновременно в очереди?

1 Ответ

6 голосов
/ 10 мая 2011

Я думаю, что вы могли бы сделать две вещи:

(1) Запустите команду из грабли:

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
...