У меня есть приложение Shopify на сервере Heroku. Один из вызовов, которые я делаю в это приложение, - это POST, в котором я отправляю коллекцию, массив продуктов и массив клиентов. Оттуда я делаю несколько вызовов API для Shopify Admin, чтобы создать все эти вещи. В настоящее время это отлично работает, если нужно создать всего несколько продуктов и клиентов. Однако Heroku имеет ограничение в 30 секунд. Это не может быть изменено. Единственный способ обойти это - послать "Heartbeat", и тогда вы получите дополнительные 55 секунд. Я не понял, как отправить "сердцебиение" обратно и продолжить. Я попробовал вернуть статус 100, но это не сработало. Кроме разделения на несколько вызовов. Есть ли способ лучше?
Тайм-аут сервера Heroku для приложения Shopify
Ответы (2)
Вы плохо проектируете свое приложение. Если вы отправляете POST в свое приложение, организуете входящие данные, отправляете их в фоновое задание для обработки, а затем возвращаете 200 OK обратно в свое приложение, если вы использовали XHR, или всплываете страницу в своем приложении со словами «Спасибо. , мы работаем над вещами "...
Таким образом, вы держите своего торгового клиента в курсе, все работает нормально, и у вас нет шансов выйти из строя после 30-секундного тайм-аута.
Не знаю, каков будет рубиновый ответ, но статья Heroku по этому поводу находится здесь и указывает, что вам просто нужно отправлять несколько байтов после каждой операции, чтобы получить дополнительные 55 с на операцию записи.
Я предполагаю, что у ruby есть способ получить доступ к потоку ответов, поэтому даже отправленный пробел может помочь - таким образом вы можете отправить кучу пробелов, а затем окончательный ответ JSON.