Вызов метода асинхронно для запросов к стороннемим АПИ

Всё что касается построения API
Закрыто
Аватара пользователя
danilatlt
Сообщения: 26
Зарегистрирован: 2012.06.05, 13:07

Вызов метода асинхронно для запросов к стороннемим АПИ

Сообщение danilatlt »

Доброго времени суток форумчане

В двух словах ситуация следующая:
1. Некий "клиент" делает запрос на сервер
2. Необходимо (желательно асинхронно, дабы не выжидать таймауты) разослать сообщение по N'ому количеству узлов, их работоспособность (доступность) не гарантированна
3. Ответить "клиенту" 200 ОК (все будит сделано :) гарантировать рассылку сообщения не нужно)

Посоветуйте как грамотно решить этот вопрос, сервис висит на обычном веб хостинге, так что запускать NodeJS или еще что то возможности нет
cкайп danil.sidorov
skynin
Сообщения: 400
Зарегистрирован: 2017.12.12, 10:09

Re: Вызов метода асинхронно для запросов к стороннемим АПИ

Сообщение skynin »

сервис висит на обычном веб хостинге, так что запускать NodeJS или еще что то возможности нет
то есть шаред хостинг?

тогда асинхронно можно только если у php стоят определенные расширения для этого. а обычно - не стоят.
обвязка вокруг curl тоже вроде имеет возможность.

если же асинхронно но без реального асинхрона, то

1. клиенту дается ответ с номером задания
2. соединение с клеинтом закрывается, и начинается синхронная рассылка сообщений
3. ее результаты записываются куда-то, с номером этого задания
4. клиент приходит еще раз, с вопросом - что там с заданием?

но если такое взаимодействие с клиентом невозможно организовать, тогда ой. пусть ждет.
Не желайте странного, и не будет у вас головной боли чтобы достичь этого странного.
Тем более что окажется что оно вам и не нужно было, странное это.
Аватара пользователя
danilatlt
Сообщения: 26
Зарегистрирован: 2012.06.05, 13:07

Re: Вызов метода асинхронно для запросов к стороннемим АПИ

Сообщение danilatlt »

Сейчас поясню
skynin писал(а): 2019.03.18, 18:24 4. клиент приходит еще раз, с вопросом - что там с заданием?
Клиент пришел, получил данные, остальное не его дело, нужно просто оповестить сервисы
skynin писал(а): 2019.03.18, 18:24 соединение с клеинтом закрывается, и начинается синхронная рассылка сообщений
вполне годно, вопрос в том как это сделать правильно в controller/action yii2. Поведения ?
cкайп danil.sidorov
Аватара пользователя
danilatlt
Сообщения: 26
Зарегистрирован: 2012.06.05, 13:07

Re: Вызов метода асинхронно для запросов к стороннемим АПИ

Сообщение danilatlt »

попробую https://github.com/Understeam/yii2-httpclient на базе Guzzle там вроде есть Async
cкайп danil.sidorov
Закрыто