Как запустить задачу Rake в качестве «запланированной задачи» Windows? - PullRequest
4 голосов
/ 20 июня 2009

У меня есть грабли, которые мне нужно запускать как ежедневную работу на компьютере с Windows XP. Я обнаружил панель управления Windows «запланированные задачи». Я пытаюсь выяснить, как заставить его выполнить мою задачу Rake.

Два поля: «запустить» (с кнопкой обзора) и «начать с». Я попытался ввести rake mycategory:mytask в «run» и мой каталог проекта Rails, содержащий задачу Rake, в «start in». В результате появилось сообщение о том, что задание «не удалось запустить».

Как настроить Windows «запланированное задание» для запуска задачи Rake?

Ответы [ 3 ]

4 голосов
/ 20 июня 2009

Если вы можете создать пакетный файл, который может выполнить его должным образом, я бы сделал это, а затем вы можете указать пакетный файл для запуска с задачей.

Примерно так должно работать:

:: Run task every hour
@call rake stats RAILS_ENV="production"
2 голосов
/ 16 сентября 2014

Просто добавление обновленного / уточненного ответа для заинтересованных ...

Создайте файл с именем rake.bat - обязательно сохраните его в кодировке ANSI (по умолчанию в блокноте Windows). Вы можете сохранить этот файл где угодно, но я поместил его в C:\ror\rake.bat

rake.bat

@call bundle exec rake %*

Теперь, когда вы создаете запланированное задание, вы можете настроить его на запуск файла .bat, а аргументы - это просто то, что следует за rake. Установите его для запуска в каталоге по вашему выбору. Запускать независимо от того, вошел ли пользователь в систему, но НЕ запускать с наивысшими привилегиями. Скриншоты ниже для наглядности; моя задача с граблями имеет пространство имен manager, а сама задача sync:

Edit Action Dialog Box

Edit Task Dialog Box

2 голосов
/ 20 июня 2009

Кроме того, помимо (правильного) совета по пакетному файлу, приведенного выше, AFAIK, вам может потребоваться запустить задачу для учетной записи, для которой задан непустой пароль. Собственность планировщика.

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