Выполнять скрипт автоматически каждый - PullRequest
1 голос
/ 26 января 2011

Я хотел бы запустить, например, синхронизирующий скрипт ruby ​​(в действии rails, если это возможно) между двумя базами данных каждый день в 3 часа ночи.Было бы неплохо сохранить это время в базе данных, потому что если синхронизация не удалась, я бы хотел настроить ее на повторную попытку через час (а в базе данных я могу легко изменить ее на каждый день в 5 утра, если яХотелось бы, даже другим админам в администрировании моего приложения).Мне бы хотелось, чтобы скрипт выполнялся в одном из действий в моем приложении на Rails, чтобы я мог создать страницу администрирования, где простым щелчком по ссылке запускается скрипт (необязательно, он может быть в отдельном файле Ruby, какое действиев конце концов, вызовите, но было бы лучше иметь его как действия в выделенном контроллере, потому что у меня будет много подобных скриптов, и мне просто нравится иметь подобные вещи в одном месте).Возможно ли это как-нибудь без вещей, о которых я ничего не знаю, и все же, как cron?

Ответы [ 2 ]

7 голосов
/ 26 января 2011

Если вы не хотите иметь дело напрямую с cron, взгляните на всякий раз, когда . Он предоставляет хороший синтаксис для написания заданий cron:

every :hour do
  runner "MyModel.do_something"
end
3 голосов
/ 26 января 2011

Для этого вам понадобится планировщик задач.

В Windows стандартный планировщик называется Планировщик задач .

В Linux стандартный планировщик называется cron .

Оба тривиально просты в использовании.Если вы пишете код на Ruby, вы можете запланировать задачу.

Например, чтобы запланировать выполнение команды каждый час каждого дня с помощью cron, введите crontab -e и добавьте следующую строку:

0 3 * * * /command/to/run

Чтобы запустить его каждый час, чтобы можно было проверить базу данных, чтобы выяснить, следует ли ей что-то делать:

0 * * * * /command/to/run
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...