Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Ограничение времени выполнения цикла
Я понял, только вот в этом промежутке мне надо прибавить какое-то время к текущему скажем час ночи или 4 утра, чтобы начало след действия сотрудника началось после 9 утра, однако как сделать так, чтобы автоматом подбиралось сколько часов надо прибавить, т.е. 22 часа значит надо прибавить 12 часов, если час ночи то 9 часов и т.д.?
Prizma
Отправлено: 03 Января, 2016 - 04:23:06
Посетитель
Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012 Откуда: Санкт-Петербург
Помог: 5 раз(а)
Возможно я идиот... но все же
1. Почему проверка в цикле?? у вас скрипт будет выполняться 24 часа в сутки? (тогда вопрос, как это возможно, я даже с set_time_limit(0) выжимал около 15-20 минут... Возможно изменить настройки сервера можно разогнать его до unlimited? (это вопрос - интересно)
2. Ладно пусть в цикле, но черт возьми почему проверки в конце и где остановка?
3. Раз остановки нет, не знаю сколько у вас записей в таблице contacts, но все же если предположить, что их очень много, то даже добавив к проверке остановку, все равно скрипт продолжит парсить contacts и не прервется пока первый цикл не переберет всю таблицу.
Я не спрашиваю зачем, могу предположить, что задание в вузе или ставите какой то эксперимент или это вообще просто пример, а реализация будет в ином месте...
lawer85 пишет:
Есть цикл, который наполняет БД случайным образом действиями сотрудников.
Мне нужно, чтобы скажем c 22:00 до 09:00 данные не добавлялись, что-то вроде отдыха.
если бы не смотрел на вашу реализацию сделал бы как то так:
/* вместо die можно использовать sleep сделав расчет времени до утра и тогда ровно в 9:00 он продолжит пахать с того места где остановился) */
}
lawer85
Отправлено: 03 Января, 2016 - 12:20:24
Частый гость
Покинул форум
Сообщений всего: 189
Дата рег-ции: Янв. 2013
Помог: 1 раз(а)
Prizma пишет:
Возможно я идиот... но все же
1. Почему проверка в цикле?? у вас скрипт будет выполняться 24 часа в сутки? (тогда вопрос, как это возможно, я даже с set_time_limit(0) выжимал около 15-20 минут... Возможно изменить настройки сервера можно разогнать его до unlimited? (это вопрос - интересно)
2. Ладно пусть в цикле, но черт возьми почему проверки в конце и где остановка?
3. Раз остановки нет, не знаю сколько у вас записей в таблице contacts, но все же если предположить, что их очень много, то даже добавив к проверке остановку, все равно скрипт продолжит парсить contacts и не прервется пока первый цикл не переберет всю таблицу.
Я не спрашиваю зачем, могу предположить, что задание в вузе или ставите какой то эксперимент или это вообще просто пример, а реализация будет в ином месте...
lawer85 пишет:
Есть цикл, который наполняет БД случайным образом действиями сотрудников.
Мне нужно, чтобы скажем c 22:00 до 09:00 данные не добавлялись, что-то вроде отдыха.
если бы не смотрел на вашу реализацию сделал бы как то так:
/* вместо die можно использовать sleep сделав расчет времени до утра и тогда ровно в 9:00 он продолжит пахать с того места где остановился) */
}
Вы не поняли. Скрипт не работает 24 часа в сутки. Скрипт заполняет БД разными действиями сотрудников и этих действий от 10 до 600 и каждое выполняется от 5 минут до 5 часов. Из скрипта видно что кол-во действий и время на выполнение берется рандомно. Поэтому идет речь о сутках(24 часа). Другими словами мы за несколько дней можем заполнить БД данными.
lawer85
Отправлено: 03 Января, 2016 - 18:32:54
Частый гость
Покинул форум
Сообщений всего: 189
Дата рег-ции: Янв. 2013
Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012 Откуда: Санкт-Петербург
Помог: 5 раз(а)
lawer85 пишет:
Вы не поняли. Скрипт не работает 24 часа в сутки. Скрипт заполняет БД разными действиями сотрудников и этих действий от 10 до 600 и каждое выполняется от 5 минут до 5 часов. Из скрипта видно что кол-во действий и время на выполнение берется рандомно. Поэтому идет речь о сутках(24 часа). Другими словами мы за несколько дней можем заполнить БД данными.
Понятно, тебе нужно все лишь что бы значение timestamp в поле `created_at` принимало значения в диапозоне от 9 до 23 часов. Вот только, что за реализация такая интересная.. Возможно она и работает но лучше написать в условии, наверно вот так:
Ну и собственно вопрос должен был звучать как то так, чтобы его поняли правильно:
Помогите составить условие для if, ...
lawer85
Отправлено: 03 Января, 2016 - 22:24:16
Частый гость
Покинул форум
Сообщений всего: 189
Дата рег-ции: Янв. 2013
Помог: 1 раз(а)
Prizma пишет:
lawer85 пишет:
Вы не поняли. Скрипт не работает 24 часа в сутки. Скрипт заполняет БД разными действиями сотрудников и этих действий от 10 до 600 и каждое выполняется от 5 минут до 5 часов. Из скрипта видно что кол-во действий и время на выполнение берется рандомно. Поэтому идет речь о сутках(24 часа). Другими словами мы за несколько дней можем заполнить БД данными.
Понятно, тебе нужно все лишь что бы значение timestamp в поле `created_at` принимало значения в диапозоне от 9 до 23 часов. Вот только, что за реализация такая интересная.. Возможно она и работает но лучше написать в условии, наверно вот так:
Ну и собственно вопрос должен был звучать как то так, чтобы его поняли правильно:
Помогите составить условие для if, ...
Я об этом не подумал. Спасибо за совет. Хотя по-моему это будет влиять не на саму работу скрипта, а скорее на внешний вид что ли. Т.е. будем работать с привычными цифрами 1 2 вместо 01 02
Кстати верно понял то, что мне надо.
Prizma
Отправлено: 03 Января, 2016 - 23:24:00
Посетитель
Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012 Откуда: Санкт-Петербург
Помог: 5 раз(а)
lawer85 пишет:
Я об этом не подумал. Спасибо за совет. Хотя по-моему это будет влиять не на саму работу скрипта, а скорее на внешний вид что ли. Т.е. будем работать с привычными цифрами 1 2 вместо 01 02
во первых числами, а во вторых нету числа 01 ... зато есть строка '01' приводимая в данном выражении при сравнении к числу 1.
Просто не логично сравнивать одну строку с другой оператором ">=", когда обе строки будут приведены к числу и ноль с кавычками с самого начала нечего не значат. Собственно точно так же можно не использовать ltrim все равно число будет приведено одинаково.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.