Импорт и обработка больших объемов данных на php

87
29 января 2022, 20:10

Задача заключается в импорте больших объемов данных в бд, во время импорта, или после, будет запускаться индексация полученных данных машиной elasticsearch. Время потраченное на обработку данных может быть от нескольких минут до нескольких часов. Так вот как это делается на php? :)

Если мы будет обращаться к скрипту просто через браузер, то как минимум браузер будет просто висеть и пользователь не поймет, что происходит, так же через время сервер просто обрывает соединение, выдавая 504 ошибку.

Я так понимаю, надо реализовать обращение к скрипту асинхронно и систему отслеживания статуса выполнения операций? А как быть уверенным в том, что сервер не вырубит процесс который висит минут 40? Может кто статейку подкинет, или советом хотя бы :)

Answer 1

Надо будет сделать интерфейс для создания "заданий". Веб интерфейс - пишем в БД, что надо сделать то и то. PHP скрипт(ы) запускается по крону и проверяет, если ли задания, и если есть - выполняет их. Сначала помечает, что задание в работе, и начинает обрабатывать данные. По окончании - пишет в бд, что задание выполнено и пишет в БД результаты. Зайдя в веб интерфейс можно увидеть какие задачи есть, какие выполнены, какие в процессе, какие результаты выполнения, какие отвалились в ошибкой.

READ ALSO
сайт не видит сессию

сайт не видит сессию

уважаемые знатоки! У меня есть страница aloginphp, на которой должна происходить авторизация администратора сайта

95
Как создать таблицу с пустыми полями

Как создать таблицу с пустыми полями

Мне нужно создать пустую таблицу на ReadbeanphpТо есть описать названия полей и их типы

155
убрать переход по прямой ссылке

убрать переход по прямой ссылке

Есть у меня сайт с единой точкой входа, но при попытке перейти по прямой ссылке можно зайти в закрытые разделы сайтаКак можно запретить переходить...

81
PHP замена прозрачного фона в png на белый

PHP замена прозрачного фона в png на белый

Всем привет, делаю загрузку картинок для превью товаров(в магазине)

131