SOAP звонки с использованием EventMachine
-
11-07-2019 - |
Вопрос
Есть ли способ сделать неблокирующие запросы SOAP в EventMachine? Р>
Я создаю приложение ruby, которое взаимодействует с API Google AdWords (который основан на SOAP), используя гем adwords4r. Приложение использует EM для получения сообщений через соединение Stomp, а затем обрабатывает эти сообщения, делая SOAP-вызовы API AdWords. Очевидно, что эти вызовы должны быть неблокирующими, поскольку обработка будет происходить в потоке реактора. Одним из вариантов может быть использование EM.defer, но я бы предпочел не иметь накладных расходов на кучу потоков в пуле потоков.
Решение
HandSoap может использовать EventMachine.
Другие советы
После того, как я получил этот вопрос, я задал вопрос на IRC #eventmachine. Очевидно, что нет никаких удобных для событий вариантов для выполнения вызовов SOAP, кроме использования EM.defer