Как в php оборвать соединение с клиентом и продолжить выполнение скрипта?

Есть скрипт который выгружает данные в файл, данных много и скрипт работает долго. Можно как то сделать запрос с клиента, оборвать соединение и скриптом записывать в базу статус выполнения задачи. На клиенте можно с помощью ajax раз в 5 - 10 секунд проверять статус выполнения, выдавать сколько процентов обработано и если задача завершена то в ответ отдавать ссылку на файл.

Как на php тюможнл так сделать? Интересует именно как оборвать соединение и продолжить работу скрипта
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ответы на вопрос 2
@d-sem
Очереди.

Поставить задачу в очередь. В базу сохранить под статусом в обработке. Id задачи отдать клиенту. Соединение штатно завершается.

Обрабатывающий задания воркер/консьюмер по обработке меняет статус задачи. Клиент получает данные.
Ответ написан
@Nc_Soft
Вариант 1: fastcgi_finish_request
Вариант 2: nginx post action
Вариант 3: очередь
Ответ написан
Ваш ответ на вопрос

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

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