Ruby / Rails - Всякий раз, когда gem - Цикл задач cron - PullRequest
0 голосов
/ 06 января 2011

Я хотел бы контролировать свои задания cron через страницу администрирования.
По сути, мои cronjobs находятся в моей базе данных, и я хотел бы создать свой crontab "на лету".пример:

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

Но Всякий раз, когда не выводит ни одной из задач внутри цикла, только «статическую».

0 0 * * * whenever --update-crontab

Как я могу заставить Всякий раз, когда 'понимает' мой цикл?

1 Ответ

1 голос
/ 06 января 2011

Вам, вероятно, нужно поднять свой eval выше, например:

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

Предполагается, что ваш cron.cmd является чем-то вроде 'command "ls -a"'.

...