Я предложил бы небольшое изменение в Вашей логике. Это может или не может работать, в зависимости от того, что необходимо выполнить.
handle_event () может все еще сделать "скучный код по умолчанию", но вместо того, чтобы быть виртуальным, в точке, где Вы хотите, чтобы это сделало, "новый захватывающий код" имеет вызов базового класса абстрактный метод (т.е. must-be-overridden) метод, который будет предоставлен Вашим классом-потомком.
РЕДАКТИРОВАНИЕ: И если Вы позже решаете, что некоторые Ваши классы-потомки делают не потребность предоставить "новый захватывающий код", затем можно изменить краткий обзор на виртуальный и предоставить пустую реализацию базового класса той "вставленной" функциональности.
Просто предположение, но вы не
Лучшая уловка из моей головы: напишите сценарий, чтобы отслеживать последний раз, когда он был запущен, и запустить его с условием если это было более 25 часов назад.
Установите этот скрипт драйвера на запуск каждый час.
Было бы проще выполнить команду at
, указав время и дату следующего задания при запуске текущего, но вы можете смоделировать это с помощью задания cron, обновив запись cronjob для процесса в начале текущего запуска (не в конце, потому что тогда вам нужно будет учитывать время для выполнения задания).