Возможно ли сделать полноценный скрипт в фоне на чистом PHP?
У меня свой сервер имееться на Linux с Nginx, у меня задача, сделать скрипт, который при закрытии веб страницы на стороне пользователя, продолжал работу без проблем. Это нужно, потому что он очень долго будет выполняться.
Читал в интернете, но ничего толкового не нашёл - то слишком старые записи, то пишут, что на PHP такое сделать невозможно, то читал, что через случайное время по неизвестной причине скрипт закрывается...
Что вы думаете?
Для этого есть постановка заданий. Создайте задачу. Вы можете запускать таким образом любой независимый скрипт, например:
crontab
5 * * * * /home/username/tasks.php
tasks.php будет с интервалом в 5 минут проверять наличие заданий, скажем, в базе данных или в конфигурационном файле. Стоит отметить, что подобный механизм широко поддерживается в PHP: https://packagist.org/?query=sheduler, в том числе всеми ведущими фреймворками, предоставляющими обертки для задачника и хранения задач в базе данных.
можно. но не нужно.
вся задача современного вэба – принять задание и поставить его в обработку. и пусть оно там колбасистся хоть неделю.
для этого вовсе не нужно "скрипт, который при закрытии веб страницы на стороне пользователя, продолжал работу без проблем". для этого нужно познакомиться с очередями заданий.
хотя бы в самом примитивном виде.
Если через FPM, то можно этой функцией отсоединить скрипт от сервера и продолжить выполнять его на фоне: https://www.php.net/manual/ru/function.fastcgi-fin...
Но при этом он будет занимать пул процессов, следует это иметь ввиду.