Метод, который вы используете, хорош, если вы не хотите использовать cronjobs или что-то внешнее, но их может быть сложно проверять каждый раз при загрузке страницы.
Сначала некоторые cronjobs, вероятно, можно заменить. Например, если у вас есть счетчик количества пользователей, зарегистрированных на вашем веб-сайте, вы можете просто обновить этот номер при регистрации пользователя, чтобы вам не приходилось использовать cronjob или любую запланированную задачу для этого.
Если вы хотите использовать запланированные задания, я предлагаю вам использовать метод, который вы используете прямо сейчас, но с небольшими изменениями. Если у вас на сайте достаточно посещений в день, вы можете просто запустить задачи (или запустить функцию проверки задач) только для 1% или, возможно, 0,01% обращений вместо всех, процент, который вы должны использовать, зависит на странице попаданий у вас есть и сколько раз вы хотите запустить задачу. Так что просто добавьте рандомизатор для достижения этой функции.
Вы можете просто использовать функцию, подобную этой;
if(rand (1, 100) <= 1) { // 1, 100 is used to generate a number between 1 and 100. 1 is for one percent.
// Run the tasks system
}
Надеюсь, это поможет,