@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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽