ユーザーにメールが届くたびに呼び出されるメールパーサーperlスクリプトがあります(.qmailを使用)。メールからカレンダーの添付ファイルを抽出し、Directory::Queue モジュールを使用して実装された FIFO キューにファイルの「パス」を配置します。
カレンダーの添付ファイルのパスを読み取り、ローカル システムとリモート CalDAV サーバーで特定のファイル操作を実行する別の perl スクリプトは、こちらで説明されているように、デーモンとして実行されています。したがって、基本的にこのスクリプトは次のようになります。
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 を使用しています。問題は、このプロセスの CPU 使用率がほぼ 100% であることです。より標準的で安全な方法でデーモンを実装するための提案された方法は何ですか? Proc::Daemon の使用について言及されているリンクに記載されているコードとほぼ同じコードを使用しています。