Я застрял с проблемой асинхронного вызова оболочки (из PHP), который просто не является асинхронным, даже если так и должно быть.
exec("nohup sudo -H -u ubuntu /usr/local/bin/purge.sh $purgeString &> /dev/null &");
Приведенный выше скрипт выполняется примерно 17 раз в этом типе запроса, поэтому параллельные операции здесь обязательны!
БЕЗ вышеуказанной операции (закомментированной) запрос занимает около 4 секунд. С помощью описанной выше операции это занимает более 15 секунд, что определенно означает, что асинхронная часть не работает.
purge.sh записывает свой прогресс в файл журнала, и я могу следить за журналом и видеть, что записи поступают медленно и последовательно из каждой из 17 операций.
Я перепробовал все решения в Асинхронная оболочка в PHP и имели нулевой успех.
[БОЛЬШЕ ИНФОРМАЦИИ] —У кого-нибудь есть понимание того, что может быть не так?
ОС: Ubuntu 14.04, PHP: 7.08, веб-сервер: NGINX 1.11.2.
РЕДАКТИРОВАТЬ
Мы отказались от этого подхода. Но если кто-нибудь ответит, я все равно отмечу правильный ответ.
Задача ещё не решена.
Других решений пока нет …