|
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244
|
|
Как можно прервать выполнение цикла на определенное время?08.09.2010, 08:52. Показов 7069. Ответов 30
Метки нет (Все метки)
<?
$y=0; for ($i=0; $i<100; $i++){ $y++; if ($y==4){ # здесь нужно прервать цикл, скажем на 1 минуту... $y=0; } } ?> [/code] Есть ли какая то команда типа фокпрошного wait timeout...?
0
|
|
| 08.09.2010, 08:52 | |
|
Ответы с готовыми решениями:
30
Как можно прервать выполнение цикла?
Как проверять, нажата ли клавиша Esc, в каждой итерации цикла, и если нажата, то прервать выполнение цикла? |
|
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
|
|
| 08.09.2010, 10:16 | |
|
не мели чушь!
какой сервер-броузер будет ждать две минуты пока у тебя цикл закончится?! На выполнение скрипта даётся определённое время, это время можно посмотреть в php.ini max_execution_time
0
|
|
|
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244
|
||||||
| 08.09.2010, 11:23 [ТС] | ||||||
|
Тогда подскажите как поступить? Есть список рассылки по клиентам компании (около 2000 адресов).
Я написал скрипт, который вызывается cron jobs и отправляет по этим адресам необходимые данные. Теперь вопрос: не посчитает ли сервер провайдера такое количество писем за спам? Хостеры мои плечами пожали - ничего вразумительного не смогли сказать. Скрипт работает так: сканируется список адресов, считал адрес - отправил данные, считал следующий адрес - отправил... и т.д. Поэтому я и решил сделать задержку, например отправил по 10 адресам - ждем (например 2-5 минут), следующая порция. Раз нет такой команды, то несложную функцию можно прикрутить типа:
Что теперь делать? Разбивать список рассылки? На какие блоки? Как вообще это решается грамотно?
0
|
||||||
|
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
|
|
| 08.09.2010, 11:28 | |
|
flush() - очищаем буфер
sleep(милисекунды) - приостанавливаем скрипт
0
|
|
|
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244
|
|
| 08.09.2010, 12:25 [ТС] | |
|
Спасибо. Маленькая поправка:
sleep(секунды) usleep(милисекунды) Но проблема то с max_execution_time не решается такиб образом. Как можно поступить в моей ситуации?
0
|
|
|
7 / 8 / 6
Регистрация: 11.05.2008
Сообщений: 876
|
|
| 08.09.2010, 17:43 | |
|
повесить в crontab на 2-5 минут и проверять время отправки последнего письма по данному адресу
0
|
|
|
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244
|
|
| 09.09.2010, 06:39 [ТС] | |
|
Но видимо не так просто. Вот допустим скрипт выполняется в такой последовательности:
- отправляет письмо; - записывает в список рассылки дату отправки. Если 30-секундный период работы скрипта завершиться как-раз после отправки, то запись даты не произойдет. Значит адрессат получит в итоге 2 одинаковых письма, вместо одного. Не хотелось бы так. Но направление, где копать - понятно. Спасибо.
0
|
|
|
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
|
|
| 09.09.2010, 10:57 | |
|
что ты мучаешься, сделать что-то в слепую всё-равно не получится... Выкидывай своё чудо в инет , добавляй несколько мэйлов для рассылки и смотри как всё происходит!
0
|
|
|
0 / 0 / 2
Регистрация: 11.12.2008
Сообщений: 219
|
|
| 09.09.2010, 11:51 | |
|
to AlexKar:
Если скрипт из крона запускать в фоновом режиме, то он выполнится до конца не смотря на max_execution_time.
0
|
|
|
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244
|
|
| 09.09.2010, 13:20 [ТС] | |
|
А что значит в фоновом режиме? Это как? У меня доступ к крону через панель. Я там устанавливаю время и команду. Все. В указанное время скрипт и срабатывает сам по себе. Это и есть фоновый режим?
0
|
|
|
0 / 0 / 2
Регистрация: 11.12.2008
Сообщений: 219
|
|
| 10.09.2010, 01:17 | |
|
>>Я там устанавливаю время и команду
Напиши как, вернее что ты устанавливаешь. Как ты вызываешь скрипт. Какая команда используется ...
0
|
|
|
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244
|
|
| 10.09.2010, 06:37 [ТС] | |
|
В поле (вернее полях) временидаты:
10 17 * * 2 В поле команды: php /home/ddwshop/public_html/rs/rs.php
0
|
|
|
0 / 0 / 2
Регистрация: 11.12.2008
Сообщений: 219
|
|
| 11.09.2010, 18:48 | |
|
php /home/ddwshop/public_html/rs/rs.php >/dev/null 2>1 &
Вместо /dev/null можно подставить путь к файлу, куда будет сыпаться весь оутпут из rs.php, а также ошибки.
0
|
|
|
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244
|
||||||
| 12.09.2010, 07:28 [ТС] | ||||||
И еще вопрос: >/dev/null dev - каталог null - файл (т.е. null - никуда, если надо, то указать файл с расширением) а вот дальше непонятно: 2>1 & можно ли расшифровать эту часть строки? Спасибо.
0
|
||||||
|
0 / 0 / 2
Регистрация: 11.12.2008
Сообщений: 219
|
|
| 12.09.2010, 10:24 | |
|
Я конечно могу отослать к мануалу по любому Linux-у ...
![]() Да это фоновый режим, это можно увидеть по символу & в конце. Вместо /dev/null укажи свой файл, если нужно, например /home/ddwshop/public_html/rs/rs.log. 0-поток ввода (< или 0<) 1-поток вывода (> или 1>) 2-поток ошибок (2>) 2>1 - перенаправляем поток ошибок в поток вывода, который можно писать в файл для анализа. Вообще можно каждый поток брабатывть отдельно, если нужно конечно.
0
|
|
|
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244
|
|
| 12.09.2010, 11:47 [ТС] | |
|
Огромное спасибо за разъяснения!
На мануал меня пихать не надо ![]() Но прошу не счесть за назойливость - еще один вопрос: при чем тут Linux ? У хостеров Apache на платформе Unix, так что, теперь фоновый режим не будет работать? Или я глупрсть сморозил?
0
|
|
|
7 / 8 / 6
Регистрация: 11.05.2008
Сообщений: 876
|
|
| 12.09.2010, 14:45 | |
|
Как правило, к платформе Unix относиться не только сама ОС, но и Linux, FreeBSD, OpenBSD итп =)
0
|
|
|
0 / 0 / 2
Регистрация: 11.12.2008
Сообщений: 219
|
|
| 12.09.2010, 17:56 | |
|
To AlexKar:
У тебя именно UNIX?
0
|
|
|
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244
|
|
| 13.09.2010, 06:28 [ТС] | |
|
На хосте UNIX, на локалке, есно -нет.
Я сделал проверочный скрипт - цикл 1 - 2000 после каждых 4 - задержка sleep() на 20 сек, а после всего этого отправка мне на мыло сообщения. Все сработало, мыло получил. Спасибо огромное за помощь и терпение
0
|
|
|
0 / 0 / 2
Регистрация: 11.12.2008
Сообщений: 219
|
|
| 13.09.2010, 10:17 | |
![]() Советую поговорить с хостером, по поводу отправки кучи сообщений с твоего адреса и не заморачиваться со слипом, этим не обманешь, разве что в первое время, да и быстрее будет отправляться ...
0
|
|
| 13.09.2010, 10:17 | |
|
Помогаю со студенческими работами здесь
20
Как можно прервать выполнение в условном операторе? Можно ли задержать выполнение цикла на время с использованием таймера? Прервать выполнение конструкции без выхода из метода\цикла
Можно ли скриптом прервать выполнение другого скрипта? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|