Ошибка консольной команды Heroku

#ruby-on-rails #heroku #resque

#ruby-on-rails #heroku #resque

Вопрос:

Мне не хочется спрашивать об этом, но я не могу понять. Когда я запускаю следующую команду, heroku console я получаю синтаксическую ошибку. Почему?

 QUEUE='*' rake jobs:work
 

Ошибка:

 SyntaxError: compile error
/home/heroku_rack/lib/console.rb:150: syntax error, unexpected tIDENTIFIER, expecting $end
QUEUE='*' rake jobs:work
          ^
/home/heroku_rack/lib/console.rb:150
/home/heroku_rack/lib/console.rb:150:in `call'
/home/heroku_rack/lib/console.rb:28:in `call'
/usr/ruby1.8.7/lib/ruby/1.8/monitor.rb:242:in `synchronize'
 

Мое решение.файл rake содержит псевдоним task "jobs:work" => "resque:work" , и команда была скопирована дословно из истории консоли, поэтому я знаю, что она выполнялась ранее.

Комментарии:

1. вы пробовали с QUEUE="*" ?

2. ДА. Возникает та же ошибка. Также перезапустил приложение.

3. Работает ли это в режиме разработки или это только на heroku?

4. Привет, Нил. Только на Heroku. Он отлично работает при разработке на моей машине

Ответ №1:

Консоль Heroku — это консоль Rails, а не оболочка bash.

Вы пытаетесь выполнить QUEUE='*' rake jobs:work , как если бы это была действительная команда Ruby, что, конечно, не так.

Возможно, вы пытаетесь это сделать?(прокрутите вниз до «запустить что-нибудь», где говорится о Resque).

Комментарии:

1. Дело в том, что я нахожусь в стеке bamboo, который не поддерживает Procfile.

2. Вы могли бы изменить стеки: devcenter.heroku.com/articles/stack#migrating_to_a_new_stack

Ответ №2:

Если вы используете что-либо, кроме Cedar stack, то вы ограничены использованием DelayedJob на Heroku.

http://devcenter.heroku.com/articles/delayed-job

http://devcenter.heroku.com/articles/queueing#background_jobs_on_herokubamboo

Комментарии:

1. Я боялся этого. Придется обновить Ruby.