Задать вопрос
Этот вопрос закрыт для ответов, так как повторяет вопрос Как организовать обработку webhooks?
@tmgrr

Как обрабатывать данные, сохраняя очередность?

Всем привет. Подскажите, как лучше решить такую задачу. К приложению Laravel приходят хуки от стороннего сервиса, каждый хук надо обработать и используя его данные сделать запрос к стороннему апи в такой же хронологии, в которой они к нам пришли. Была идея использовать цепочки заданий, но хуки могут приходить с временным интервалом в несколько секунд и как их тогда запихнуть в одну цепочку - не очень понятно. Также возникает еще одна проблема, т.к. каждый хук обрабатывается за n кол-во времени, то хуки, которые пришли позже, но имеют меньшее время обработки, могут обгонять хуки, которые пришли раньше, но обрабатываются дольше. Т.е. будет нарушена хронология. Как лучше решить такую проблему?
  • Вопрос задан
  • 216 просмотров
Подписаться 1 Простой
Решения вопроса 2
Пусть хук записывает всю необходимую информацию и, главное, время в специальную таблицу в базе данных. Это всё, что будет делать хук. Таким образом он будет работать всегда быстро и всегда за одно и то же очень малое время.

Далее по крону или каким-то другим образом совершенно другой скрипт будет выбирать самую старую запись из этой таблицы и обрабатывать её, совершая необходимые действия. Далее эту запись либо удаляем либо помечаем обработанной и берём следующую запись
Ответ написан
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Создайте отдельную очередь, в обработчике хука кладите туда задание и обрабатывайте её в один поток.
Т.е. примерно то, что описал Виктор Кожухарь, только готовыми средствами фреймворка.
Ответ написан
Ваш ответ на вопрос

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

Потому что уже есть похожий вопрос.
Похожие вопросы