#ruby-on-rails-3 #post #asynchronous
#ruby-on-rails-3 #Публикация #асинхронный
Вопрос:
Мне интересно, есть ли способ выполнить post-запрос в rails, который не ожидает ответа, что означает асинхронный.
Я хочу выполнить такой вызов в контроллере. Возможно ли это?
Спасибо!
Ответ №1:
Способ, которым вы обычно выполняете это в Rails, заключается в использовании фонового рабочего, такого как Resque или DelayedJob, для выполнения тяжелой работы. Вы бы отправили сообщение на конечную точку и поставили в очередь какое-нибудь длительное задание в результате этого post. Запрос завершится быстро, а затем ваш фоновый рабочий будет асинхронно выполнять медленную / тяжелую работу.
Rails, в общем, не предназначен для асинхронной работы, такой как EventMachine или Node.js . У вас есть варианты для получения такого поведения, но это не так просто, как просто установить параметр.
Ответ №2:
вы могли бы использовать Typhoeus и обработчик on complete
request = Typhoeus::Request.new("http://localhost:3000/posts/1.json")
request.on_complete do |response|
# your stuff
end