2015-06-24 2 views
0

У меня есть приложение для рельсов 4, которое имеет некоторые методы API, и эти методы потребляют время для вычисления и генерируют огромный ответ JSON для клиентов. Проблема в том, что эти запросы блокируют все приложение. И одновременно может быть подан только один пользователь (запрос). Запрос длится долгое время для генерации ответа JSON. Когда первый запрос запущен, и приложение получает новый запрос, тогда все эти новые запросы не удались .. Как это решить .. К сожалению, рельсы не делают это автоматически. Я прошел аналогичные потоки на SO, но не был в состоянии найти решение для Rails 4 application.Please поделиться своим опытом и направлять меня в правильном направлении, чтобы решить эту проблему. Спасибо!Rails 4 long running request

+0

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

+0

он работает на пассажирском в режиме производства .. тот же вопрос ... скажите мне обходное решение – inox

ответ

1

Лучшая практика для таких длительных вызовов API - это сделать их асинхронными. Таким образом, пользовательский поток не блокируется.

Два популярных драгоценных камней, чтобы запустить фоновые задания являются
1) https://github.com/collectiveidea/delayed_job
2) https://github.com/resque/resque

+0

Спасибо David .. Если я использую задержанную работу или спасение, скажем, я делаю 5 запросов к API .. будет запрос дождитесь ответа JSON, который генерируется в фоновом задании. В принципе, я хотел знать поток процесса. Как это достигается ... Можете ли вы дать мне какой-нибудь пример или ссылку, чтобы узнать больше об этом. – inox

+0

Запрос не будет ждать. См. Этот блог. http://blog.andolasoft.com/2013/04/4-simple-steps-to-implement-delayed-job-in-rails.html# –