|
|
|
| Здраствуйте! Думаю данный вопрос не составит труда для большинства но хочеться услышать действительно дельный ответ
При работе цикла wile(){действия}, сервер ждет пока выполниться ДЕЙСТВИЕ в цикле или же он ставит это действие в очередь и продолжает выполнение цикла.
Вопрос №2
503 ошибка возникает когда в очереди скапливается слишком много процессов? Приведенный выше цикл может привести к проблеме когда постоянно будет вылезать 503? | |
|
|
|
|
|
|
|
для: tvv123456
(25.11.2009 в 23:34)
| | 1) я могу ошибаться, но по-моему это зависит от "действия"
например оператор sleep заставляет цикл приостановиться.
2) понятия не имею что такое ошибка 503 | |
|
|
|
|
|
|
|
для: Valick
(25.11.2009 в 23:50)
| | >1) я могу ошибаться, но по-моему это зависит от "действия"
>например оператор sleep заставляет цикл приостановиться.
Это понятно, но все-таки по сути при выполнение цикла каждое действие доводиться до своего логического завершения или все-таки этот цикл ставит все действия в очередь(например надо отослать 100 000 писем функцией mail(....) допустим так:$a=0; while($a<100 001){mail(.....); $a++;} дак вот этот цикл поставит рассылку 100 000 писем в очередь или же будет ждать пока завершиться каждая отправка письма | |
|
|
|
|
|
|
|
для: tvv123456
(25.11.2009 в 23:56)
| | поставит рассылку 100 000 писем в очередь или же
Фууу... спамер))))
понятия не имею, попробуйте провернуть такую авантюру и засеките время выполнения скрипта... | |
|
|
|
|
|
|
|
для: Valick
(26.11.2009 в 00:06)
| | Про письма я так в качестве примера первое что в голову пришло. Меня интересует первоначальный вопрос | |
|
|
|
|
|
|
|
для: Valick
(26.11.2009 в 00:06)
| | >попробуйте провернуть такую авантюру и засеките время выполнения скрипта
а разве время хоть как-то будет различаться в обоих случаях(когда операции ставяться в очередь или когда цикл последовательно их выполняет) | |
|
|
|
|
|
|
|
для: tvv123456
(26.11.2009 в 00:54)
| | Выполнит цикл, пойдет дальше. | |
|
|
|
|
|
|
|
для: sim5
(26.11.2009 в 04:09)
| | >Выполнит цикл, пойдет дальше.
Что это значит? Выполнить действие и начнет новое дествие или прогонит весь цикл поставив задачи в очередь.
Вопрос то вроде элементарный для тех кто знает. Я например не знаю, но хотел здесь узнать | |
|
|
|
|
|
|
|
|
для: tvv123456
(26.11.2009 в 16:48)
| | php сам по себе никакими задачами и очередями задач не занимается.
Если это делают инструменты, которые Вы в PHP Вы цикле применяете, так с них и спрос. | |
|
|
|
|
|
|
|
для: tvv123456
(26.11.2009 в 00:54)
| | а что вы вообще подразумевает под терминами - ставится в очередь и последовательно выполняется? В какую очередь и у кого ставится?
если вы предполагаете, что для каждой итерации запускается свой процесс, то нет. все команды выполняются одна за другой в одном процессе. Порождает ли следующая команда новый процесс в системе, это уже другой вопрос.
Приведенный пример с почтой как раз и подходит под второй вариант. Сами по себе команды майл выполняются одна за другой и каждая команда ждет ответа от системы независимо от того, выполнилась ли реально отправка или нет, этим как раз и будет заниматься сторонний процесс, а цикл пойдет дальше.
т.е. время исполнения команды майл в цикле это не время отправки письма в целом. | |
|
|
|