@emerysh

Как сделать интревал запуска функции?

Нужно реализовать:

если(прошло 10 мин){
делаем действие
}
если(прошло 30 мин){

делаем действие
}

должно быть ifelse

Можно ли получать дату,время к ней добавлять время и проверять его..
  • Вопрос задан
  • 182 просмотра
Пригласить эксперта
Ответы на вопрос 3
l1tero
@l1tero
Быдлокодер
Если грязно, то можно реализовать так:
$current_time = date("i");
$control_time= $current_time +10;
$control_time2= $current_time +30;
while(true){
$data=date("i");
if($data ==$control_time ){ действие 1}
elseif($data ==$control_time2){действие 2}
}
Ответ написан
@Monte
Не совсем понятна решаемая задача. Как определяется точка отсчета? PHP используется в cli или через веб-сервер? Для случая с сайтом (работа через веб-сервер) и если ровно через 10 и 30 минут, то я бы сделал так:
1) Устанавливается начальная точка отсчета, например сохраняется в БД отметка времени, например timestamp. Т.е. создаем очередь из "задач".
2) По крону каждую минуту или чаще (зависит от того, насколько точно должно быть) запрашиваем "задачи" для которых прошло 10 и 30 мин.
3) выполняем действие, удаляем ненужные задачи (которые вышли за 30 мин).

Но опять же, сама постановка задачи не понятна. Если просто if-else, то кто будет запускать этот скрипт? Если делать sleep, то сколько одновременно запущенных скрипта может одновременно висеть в слипе?
Ответ написан
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Обычно такие вещи делаются через cron
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы