我的 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 系统中的相同。因此,当您有新需求时,您可以轻松快速地更改脚本;
它允许定期在脚本中运行单个函数,而不是定期运行整个脚本,因此再次灵活;
尝试一个守护进程。将您的代码置于无限循环中,并在每次迭代之间休眠 60 秒。我猜。