2015-10-12 3 views
0

Предположим, у меня есть PHP-скрипт, который выполняет длительный процесс, который требуется 10 минут.PHP запустить скрипт одновременно?

Если я выполняю сценарий через браузер дважды, оба запроса будут выполняться одновременно или второй запрос останется в очереди сервера до завершения первого запроса?

Я знаю расширение pthreads, которое может обрабатывать запрос одновременно, но мой сервер не поддерживает это.

+0

Насколько ваша машина способна справиться с этим (как современные компьютеры), они будут работать одновременно. – syck

ответ

2

Это зависит от того, как вы настроите apache/nginx/webserver в настройках по умолчанию, они будут запускаться одновременно.

Я бы, однако, не рекомендовал, чтобы вы показывали долгосрочный скрипт php, доступный для внешнего мира. Вы просите быть DDOSed, а также, это не очень хороший пользовательский интерфейс.

Если у вас есть сценарий, который, как вы знаете, займет много времени, то есть конечная точка api, которая помещает задание в очередь сообщений, такую ​​как beanstalkd/RabbitMQ, и возвращает processing/deferred response. Затем у вас может быть отдельный рабочий стол/много работников очереди, которые будут наблюдать за очередью и обрабатывать задания в режиме реального времени.

См http://kr.github.io/beanstalkd/ или https://www.rabbitmq.com/ или даже http://redis.io/topics/pubsub

Смежные вопросы