Периодическое действие под mod_perl
Как мне выполнять периодические действия под mod_perl, в частности Apache2?
Например, мне нужно перезагрузить некоторые данные из удаленного местоположения, обработать их и сохранить в памяти. В идеале я не хочу делать это во время обработки запроса.
Я очень сомневаюсь, что будильник никогда не используется в нашей кодовой базе, поэтому простая настройка периодического будильника не будет работать. Также внешнее хранилище (например, Redis/Memcached) может быть быстрым, но все же не таким быстрым, как собственная память процесса.
Я полагаю, что это можно сделать с помощью некоторых пользовательских сигналов, pkill и cron. При необходимости выполнение обработчика сигнала может быть отложено до фазы очистки.
Но, может быть, есть более простой способ? Что-то действительно очевидное, я не вижу?
1 ответ
Если вы создали Perl, встроенный в Apache с поддержкой потоков, просто создайте поток в скрипте запуска.
Если нет, то будет очень сложно убедиться, что каждый процесс Apache обновляется сам.