私の Perl スクリプト (test.pl) は現在、crontab で次のように実行されています。
* * * * * perl test.pl >/dev/null 2>&1
crontab を使用せずに、1 分間隔ごとにスクリプトを実行したいと考えています。cron ジョブを /etc/cron.d/ に書き込むアクセス権がないため、別の解決策を見つける必要があります
これを行う方法はありますか?
Schedule::Cronは定期的なタスクを実行するための強力な機能を提供する CPAN のモジュールです。
use Schedule::Cron;
my $cron = new Schedule::Cron(sub {});
sub run_task {
# do something...
}
$cron->add_entry("0 11 * * Mon-Fri",\&run_task);
$cron->run();
次の理由から、強くお勧めします。
crontab
タスクをトリガーする時間間隔はカスタマイズ可能で柔軟で、*nix システムとほぼ同じです。そのため、新しい要件が発生したときにスクリプトを簡単かつ迅速に変更できます。
スクリプト全体を定期的に実行する代わりに、スクリプト内の単一の関数を定期的に実行できるため、これも柔軟です。