Выполнение задачи на php в фоне?

Добрый день. Есть следующая ситуация:

Клиенты отправляют на api (php) некие данные. Надо чтобы api сразу вернуло что данные приняты и после ответа начало их обработку, чтобы клиент не ждал выполнения обработки. Как это сделать?
  • Вопрос задан
  • 3260 просмотров
Решения вопроса 1
Stdit
@Stdit
Классический приём: данные сразу после принятия пишутся в сыром виде куда-то, например в специальную таблицу вида «дата»+«пользователь»+«сериализованные данные». А потом, каждые N минут, cron ходит в эту таблцу, берёт записи и обрабатывает их.
Ответ написан
Пригласить эксперта
Ответы на вопрос 7
student_ivan
@student_ivan
Web-Developer, Front-End Engineer
Ответ написан
Комментировать
@DiverUA
Ну, я для решения такой задачи писал мини-демон на PHP, которому через сокет передавал данные на обработку. Был еще один мини-проект, так там службу на сях писал — вполне неплохо работало.
Ответ написан
@ShouldNotSeeMe
Ответ написан
Комментировать
dali
@dali
через командную строку с nohup
Ответ написан
Комментировать
@werdender
Ответ написан
Комментировать
@shagguboy
php_fpm и fastcgi_finish_request()
Ответ написан
iFrolov
@iFrolov
Для таких задач существуют менеджеры очередей, например, RabbitMQ.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы