Как я могу сделать трудоемкую задачу после отправки ответа клиенту - PullRequest
1 голос
/ 27 июля 2011

Сценарий таков: когда пользователь загружает изображение, мы выполняем изменение размера изображения на сервере, но вместо того, чтобы ждать выполнения этой работы, я хочу, чтобы он немедленно ответил пользователю. если есть доступный поток, я бы правильно использовал поток для выполнения этой задачи, но насколько я знаю, в php нет потока, так как я могу достичь этой цели? Спасибо за идеи и предложения.

Ответы [ 3 ]

5 голосов
/ 27 июля 2011

Либо завершите процесс (некрасиво и ненадежно) , либо используйте JobQueue, например Gearman .

2 голосов
/ 27 июля 2011

Используйте PHP-скрипт, чтобы выполнить всю эту обработку, и вызовите его в оболочке, используя shell_exec. Таким образом, сценарий будет выполняться отдельно, и ваш код будет обходить эту операцию, выполняя ее в оболочке вместо основного кода. Смотрите мой ответ здесь для подобных задач:

PHP API для доступа к нескольким вызовам

1 голос
/ 27 июля 2011

Форкинг не надежен, если по какой-либо причине произойдет сбой вашего сервера, изменение размера никогда не произойдет.

Поместите задание в очередь и используйте для этого задание cron Существует много способов создания очереди заданий, вы можете написать свой собственный, используя базу данных, или использовать существующее решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...