Получение запроса клиента Savon SOAP, чтобы он стал неблокирующим (асинхронным)

У меня есть приложение rails, которое вызывает службу SOAP внутри одного из моих контроллеров. Проблема в том, что когда пользователь отправляет страницу и приложение отправляет запрос SOAP, пользователю приходится ждать ответа SOAP, потому что гем Savon использует блокирующий вызов для запроса SOAP.

Есть идеи, как заставить Savon вести себя асинхронно или указать rails/ruby, чтобы этот метод вызывался асинхронно?

Спасибо!


person Community    schedule 22.12.2011    source источник


Ответы (1)


Чтобы отправить запрос асинхронно, вы можете отправить запрос внутри другого потока.

Вы можете прочитать больше о многопоточности здесь

person Dipil    schedule 22.12.2011
comment
Не вызовет ли это проблем в Rails? - person ; 23.12.2011
comment
Это не должно вызвать проблем, но если вы действительно беспокоитесь об этом, вам следует посмотреть resque на github. .com/blog/542-introduction-resque. Это потребует дополнительной настройки, но работает отлично. - person Dipil; 23.12.2011