Долгое время читатель, первый постер ...
У меня есть длительный процесс PHP 7, размещенный на машине с Ubuntu 16.04. Он выполняет различные функции с различными интервалами; что-то каждые 2 м, а некоторые - каждые 15 м и т. д. Я запускаю эти функции на основе текущего времени эпохи, сравнивая «next_time_to_run», поддерживаемое для каждой функции. Next_time_to_run пересчитывается каждый раз, когда выполняется функция. Например, если функция выполняется каждые 2 минуты, то при запуске она просто добавляет 120 к текущему времени эпохи, чтобы найти следующее время запуска.
Недавно я столкнулся с проблемой, когда процесс NTP довольно резко изменил системное время во время работы моего процесса. Как вы можете себе представить, это привело меня в замешательство. ( о да, я сказал 'tizzy' )
У меня такой вопрос - можно ли зарегистрировать обратный вызов / обработчик событий / и т.д. что будет срабатывать при изменении системного времени (эпохи)? Кстати, системные часы поддерживаются в UTC.
Спасибо, о-о-о-о-великолепно, StackOverflow-hive-mind!
$dothing1time = time() + 120;
$dothing2time = time() + 3600;
while(1) {
$now = time();
if( $now >= $dothing1time ) { dothing1(); $dothing1time = $now + 120; }
if( $now >= $dothing2time ) { dothing2(); $dothing2time = $now + 3600; }
sleep( 30 );
}