Я запускаю задачу с большим сроком выполнения, которая возвращает инкрементный вывод о ходе выполнения задач компонентом Symfony Process.Ajax-опрос с компонентом Symfony Process
Один из примеров показывает, как получить вывод в реальном времени, а другой пример показывает, как запускать асинхронную задачу.
Я пытаюсь достичь результата getIncrementalOutput обратно в функцию опроса ajax, поэтому я могу обновить интерфейс в реальном времени.
Кажется, в любом случае процесс-> start() блокируется, потому что мой вызов ajax занимает минуту, чтобы вернуться, и к тому времени задача завершилась.
Я думаю, я пытаюсь избежать записи прогресса в db или файл и получить результат непосредственно из выполняемой задачи PHP.
Не уверен, что это возможно.
Я мог бы быть неправильно, но я думаю, что это порождает подпроцесс основной PHP прок, поэтому с точки зрения запроса жизненного цикла его еще блокирующим, это как раз не блокировать другие вещи, которые вы, возможно, захотите сделать в ходе этого запроса. Вы не можете запустить подпрограмму ... вернуть ответ, а затем использовать второй запрос, чтобы проверить его. Для этого вам понадобится какая-то очередь. – prodigitalson
А я понимаю, что вы имеете в виду. Это может быть так – paul