Как не прерывая работу скрипта отдать ответ запрос?

Добрый день, подскажите пожалуйста, есть ли способ "досрочно" отдать ответ на запрос не прерывая работу скрипта

Грубо говоря есть кейс:

есть запрос на сервер от vk callback api в документации сказано что нужно отдать строку "OK" в течении 3 секунд, иначе запрос будет продублирован, тем временем скрипт может выполнятся секунд 30, как быть в таком случае?
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Разделять получение данных и их обработку.
Первый скрипт получает данные, заносит их в очередь обработки и отвечает OK.
Второй скрипт (демон) получает данные из очереди и обрабатывает их хоть полчаса.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
uDenX
@uDenX
PHP Developer
Например AMQP или сохранять ответ и запускать какой-то обработчик в фоне
Ответ написан
Комментировать
@Barmunk
exec, cron, queue или

ignore_user_abort(true);
header("Connection: close");
header("Content-Length: " . mb_strlen($response));
echo $response;
flush();
do_function_that_takes_five_mins();

https://stackoverflow.com/questions/1481247/how-to...
Ответ написан
Комментировать
tomclancys
@tomclancys
Самое толковое наверное через очереди(queue) делать.
Сразу ответ отдаёте в ВК и далее продолжаете выполнять нужные задачи.
Ответ написан
Комментировать
@Mellorn
Если используете php-fpm, можно заюзать fastcgi_finish_request.

Но вообще, согласен с другими ответившими. Разделение получения и обработки данных с последующей работой с ними через очередь - будут самым лучшим решением.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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