2017-01-24 3 views
1

В моей PROCFILE я определяю работник как:Работник Heroku пропускает конфигурацию очереди Resque?

signup_worker: env QUEUE=signups bundle exec rake resque:work 
login_worker: env QUEUE=logins bundle exec rake resque:work 

, но после того, как развернуть свой код, мой работник продолжает регистрацию обработки как подписок и логинов.

Я делаю что-то неправильно здесь? Можно ли сделать это на Героку?

ответ

1

Проблема заключается в том, что вы пытаетесь передать переменную среды в рабочий процесс, но используете неправильный синтаксис.

Обновите Procfile выглядеть следующим образом:

signup_worker: QUEUE=signups bundle exec rake resque:work 
login_worker: QUEUE=logins bundle exec rake resque:work 

Если вы хотите передать переменные окружения в процессе рядного, что вам нужно сделать это в форме VARIABLE=value <command>.

Я тестировал это самостоятельно на динамо как раз сейчас, и он отлично работает!

+0

Сделано так, как вы сказали, но все же. Мой первый рабочий получает второе сообщение и наоборот. –

+0

Вы уверены, что правильно разбираете переменные среды? Если вы измените свой рабочий код и выведете переменную окружения 'QUEUE', вы увидите, что оно действительно будет иметь правильное значение. Если это так, у вас может возникнуть другая проблема с настройкой resque, которая не связана с ошибкой в ​​переменных среды. – rdegges

+0

спасибо. Вы открыли мое мнение о других проблемах, кроме моего Procfile. У меня была функция resque: setup на моем Rakefile со следующим значением: QUEUE = '*'. –

Смежные вопросы