2015-10-07 1 views
0

Я пытаюсь запустить Heroku CLI команды, как:Запуск Heroku команд консоли (грабли БД: мигрировать) из Resque рабочего

heroku run rake db:migrate --app app-name 
heroku run rake db:seed --app app-name 

от работника Resque работает в фоновом режиме.

Если я запускаю работник на переднем плане с:

RAILS_ENV=production rake resque:work QUEUE="*" 

процесс завершится успешно, и задачи рек запускаются.

Однако, когда работник начал так:

RAILS_ENV=production PIDFILE=./resque.pid BACKGROUND=yes QUEUE="*" rake resque:work >> worker1.log 

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

+0

Зачем вам выполнять эти задачи у работника? Как миграция, так и посев должны выполняться вручную разработчиком после нажатия перехода - кто должен обеспечить успешность миграции и посева. Извините, если я против, но я просто не понимаю, почему вы хотите это сделать. – max

ответ

0

Как и max, я не уверен, почему вы хотите это сделать, но если вы хотите вызвать задачу Rake из скрипта Ruby, в вашем случае лучше фактически загрузить задачу Rake в память и запустить это из вашего рабочего Resque. Вот ответ SO, в котором объясняется, как запустить задачу Rake из Ruby: https://stackoverflow.com/a/15259172/586983