Подтвердить что ты не робот

Rails 2.3.X - Выполнить код после запроса был получен и возвращен?

возможно ли в rails 2.3.X запустить новую цепочку команд после того, как запрос был отображен и возвращен запрашивающему лицу?

Мне нужна эта функция для работы с асинхронным API с другой стороны: они ожидают ответа на свой запрос, и после того, как этот ответ будет выполнен, мое приложение rails должно отправить им новый http-запрос (отправить что-то в их API)...

Каковы возможности здесь? Есть что-то вроде крючка after_render? Должен ли я использовать потоки или фоновые задачи и как это можно сделать?

Я был бы очень рад некоторым решениям: -)

С уважением

ОБНОВЛЕНИЕ: Код возврата (например, 200) должен быть отправлен запрашивающему устройству перед выполнением других вызовов

4b9b3361

Ответ 1

Самый простой способ - создать новый поток. Это предполагает, что это легкий вызов, и вам не требуется расширенная регистрация ошибок или повторная логика.

Thread.new do
  puts  "call the api"
end

Ответ 4

Я мог ошибаться, но я думаю, что выполнение кода продолжается после рендеринга, если вы не вернете его. Вот почему вы получаете сообщение об ошибке, если попытаетесь сделать дважды.

Ответ 5

Вы рендерите html? Если да, возможно, вы можете вставить некоторый javascript на страницу рендеринга, чтобы сделать новый запрос к контроллеру и инициировать дальнейшие действия, которые вам нужно предпринять.