Истечение отдельного процесса PHP для долгой задачи

У меня есть сценарий AJAX, который занимает около 10 минут, чтобы сделать это. Я хотел бы сказать пользователю: «Слушайте, задача завершается, мы сообщим вам, как это получается», но она не позволит пользователю запускать какие-либо другие скрипты на сервере до тех пор, пока этот завершает (я считаю, что это следствие того, что PHP является однопоточным, но я не уверен). Есть ли способ назначить этот сценарий AJAX отдельному процессу PHP или Apache, чтобы пользователь мог продолжать щелкнуть в приложении, не дожидаясь завершения задачи?

Вы можете использовать базу данных или файлы, чтобы вставить механизм блокировки, чтобы задача не запускалась несколько раз одновременно. Затем вам нужно просто запустить процесс PHP с помощью команды nohup (не повесить трубку), для более подробной информации смотрите эту статью: https://nsaunders.wordpress.com/2007/01/12/running-a-background-process-in -php / или этот вопрос: nohup: запустить PHP-процесс в фоновом режиме .

Я ищу часами, по крайней мере, решение было очень легко для меня использовать Cron Jobs . В cPanel вы можете перейти в Advanced -> Cron Jobs и планировать задачу с помощью PHP-скрипта в командной строке.

Пример команды, выполняющий скрипт php:

 /usr/bin/wget http://www.example.com/miscript.php 

или лучше:

 php /home/USER/public_html/miscript.php