Массовые вызовы API в Rails - PullRequest
3 голосов
/ 28 мая 2011

У меня есть два разных приложения Rails, говорящих друг с другом через вызовы API.Прошли те дни, когда звонок был легким, а значит, было гораздо меньше передачи данных.Мы никогда не заботились о проблемах тайм-аута запросов / ответов HTTP.Но как только данные выросли, наступили тайм-ауты, и нам пришлось разделять данные и отправлять их в пакетном режиме, в отличие от прямого вызова API.

В настоящее время мы делаем то, что необходимо, используя работу Threading и Background, которая под IЧувство не является более чистым способом, и я должен сказать, что производительность получила огромный успех.Я чувствую, что у меня нет много вариантов.Есть предложения?

1 Ответ

3 голосов
/ 28 мая 2011

Не зная вашего конкретного сценария, я могу только предложить очевидное:

Используйте систему очередей, такую ​​как Resque , автоматическое выполнение заданий с тайм-аутом и повышение производительности вашего источника (покупка оборудования, кэширование.)

Если вы, например, синхронизируете модель через ActiveResource и циклически проходите через каждый отдельный объект, что приводит к вызову show для этого объекта в источнике, вы должны просто извлечь все рассматриваемые объекты, используя index действие и цикл через получателя, а не запрашивать один элемент за раз.

...