Сломанное приложение Rails после развертывания в Heroku

Я создал очень простое приложение rails, которое берет список продуктов, создает записи продуктов для каждого, обращается к стороннему API, используя идентификатор продукта, и соответственно заполняет соответствующие данные о продукте из ответа в каждую запись продукта в приложении.

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

Кроме того, я добавил ведение журнала, чтобы показать, когда происходит вызов API, и зарегистрировать необработанный ответ XML. Локально работает нормально.

Я развертываю на героку и ищу любой идентификатор, он ломается. Приложение выдает что-то похожее на 500 («что-то пошло не так») только для того, чтобы позже увидеть, что соответствующие объекты продукта действительно были созданы, хотя данные о продукте не были заполнены, а вызов API никогда не выполнялся. (Буквально ничего не регистрируется, ошибка или что-то еще.)

Помимо передового опыта, мне интересно, должны ли все сторонние вызовы API на heroku выполняться из фоновых заданий или, возможно, есть что-то еще, что мне не хватает.

Я тоже реализовал activejob, но все равно получаю те же результаты. Что бы это могло быть?

Спасибо за вашу помощь.


person Someone Else    schedule 15.06.2015    source источник
comment
Как насчет запуска консоли Rails в приложении Heroku и устранения неполадок на каждом этапе вручную. Должен дать вам лучшее представление о том, где находится точка отказа.   -  person Casper    schedule 15.06.2015
comment
Я тоже пытаюсь выполнить item_lookup, но я действительно застрял. Можете ли вы опубликовать часть своего кода, которая содержит часть item_lookup, в Gist? Это будет большой признательностью!   -  person liver    schedule 07.08.2015
comment
Привет @cozymonster29, проверьте это вне. Надеюсь, это поможет вам научиться ловить рыбу :) Дайте мне знать, если это поможет!   -  person Someone Else    schedule 12.08.2015


Ответы (1)


Все, что мне нужно было сделать, это установить переменные env с помощью figaro.

$ figaro heroku:set -e production

Дерп.

Спасибо @Каспер :)

person Someone Else    schedule 16.06.2015