PHP set_time_limit limit - PullRequest
       15

PHP set_time_limit limit

3 голосов
/ 22 сентября 2011

ВОПРОС

Будет ли это нормально работать, если я использую sleep(300);, чтобы провести целый день (24 часа) в 5-минутных промежутках?

Это значит, будет set_time_limit (86400); работать?

Тогда я могу настроить расписание своего хоста на использование только один раз каждые 24 часа.


ИНФОРМАЦИЯ

Я нашел то, что я сейчас делаю, по этому вопросу и теперь использую его, чтобы делать что-то каждые 5 минут.Это работает хорошо и вовремя даже с правильными секундами.(Говоря о промежутке между каждым sleep) - он спит 3 раза, а затем снова вызывается из расписания моего хоста.

Мне назначают запланированное задание на моем хосте каждые 15 минут, проблема в том,это происходит не каждые (точные) 15 минут, а скорее, как 16 и немного минут - и через несколько часов оно полностью не синхронизируется.

Если возможно использовать его, чтобы не завершать работу в течение 24 часов,затем я могу настроить сон в коде так, чтобы он выполнялся ровно каждые 5 минут.


ОБНОВЛЕНИЕ

17:17:50 22-09-2011 Check done!
17:34:09 22-09-2011 Check done!
17:47:47 22-09-2011 Check done!

Я запустил скрипт, который добавлялся кфайл даты и "Проверка выполнена!"- это было без петли и sleep, и это то, что я получил.

Ответы [ 2 ]

2 голосов
/ 22 сентября 2011

будет set_time_limit (86400);работа?

Да.

Но не делайте этого, если вы запустите свой скрипт через веб-сервер, это будет занимать соединение в течение всего этого времени.

2 голосов
/ 22 сентября 2011

Если вы используете set_time_limit(0);, код никогда не прекратит работу и не будет работать вечно, если он не завершится первым. Например, я пишу программы на PHP в цикле while(1) { ... }. Он работал около двух недель подряд (затем мне пришлось перезагрузить компьютер по какой-то не связанной причине).

Крон обычно точен, хотя. Если cron вашего хоста не синхронизирован, вы должны связаться с ним и спросить об этом - это не нормально.

РЕДАКТИРОВАТЬ: Кроме того, вы можете захотеть запустить его навсегда и запустить его вручную, затем иметь задачу cron, которая проверяет, все ли еще работает, и перезапустить, если это не так.

...