У меня есть Perl-скрипт почтового парсера, который вызывается каждый раз, когда пользователю приходит почта (используя .qmail).Он извлекает вложение из календаря из почты и помещает «путь» файла в очередь FIFO, реализованную с использованием модуля Directory :: Queue .
Другой perl-скрипт, который считывает путь вложения календаря и выполняет определенные файловые операции в локальной системе, а также на удаленном сервере CalDAV, запускается как демон, как объяснено здесь .Так что в основном этот скрипт выглядит так:
my $declarations
sub foo {
.
.
}
sub bar {
.
.
}
while ($keep_running) {
for(keep-checking-the-queue-for-new-entries) {
sub caldav_logic1 {
.
.
}
sub caldav_logic2 {
.
.
}
}
}
Я использую Proc :: Daemon для запуска скрипта в качестве демона.Теперь проблема в том, что этот процесс использует процессор почти на 100%.Каковы предлагаемые способы реализации демона более стандартным и безопасным способом?Я использую в значительной степени тот же код, который упоминался в ссылке, упомянутой для использования Proc :: Daemon.