Я создаю плагин для CMS и мне нужно одно или несколько предварительных заданий в фоновом режиме. Поскольку это плагин для CMS с открытым исходным кодом, работа cron не является идеальным решением, поскольку пользователи могут не иметь доступа к cron на своем сервере.
Я собираюсь начать бесконечный цикл с помощью AJAX-запроса, а затем прервать XHR-запрос. HTTP-соединение будет закрыто, но скрипт продолжит работу.
Это хорошее решение в целом? А как насчет ресурсов сервера? Существуют ли какие-либо политики отключения или ограничения на серверах (например, Apache) для длительной работы потоков?
Длительные скрипты php не слишком хорошая идея. Если ваш сценарий использует переменные сеанса, ваш пользователь не сможет загружать какие-либо страницы, пока другой сценарий на основе сеанса не будет закрыт.
Если вам действительно нужны долго выполняющиеся сценарии, убедитесь, что они не используют какой-либо сеанс, и держите их под максимальным временем выполнения. Не позволяйте ему работать без вашего контроля. Это может вызвать различные проблемы. Я помню, когда я делал такие вещи, и мой сервер просто несколько раз падал.
Знайте, что вы хотите сделать, и убедитесь, что он хорошо протестирован на разных серверах.
Также найдите похожие модули и проверьте, какие методы они используют для решения подобных проблем. Учитесь у профи. 🙂
Других решений пока нет …