有没有用Perl编写的类似于cron的服务?

有没有用Perl编写的类似于cron的服务?,perl,cron,Perl,Cron,我正在考虑一个Perl的web应用程序,它允许用户创建bug监视器。因此,本质上,每个“bug watch”都是一个bug ID,它将随“sleep”时间一起传递给子例程,一旦“sleep time”结束,它必须在不阻塞父进程或对等进程的情况下重复出现 我试过了。它支持类似cron的格式,但这里subs的参数必须是简单的标量,因此我排除了它 POE/Coro似乎是另一种选择,但我对此不太清楚( 有什么见解吗?蒂娅 -Matt.Schedule::Cron有什么问题吗?您可以创建任何子例程

我正在考虑一个Perl的web应用程序,它允许用户创建bug监视器。因此,本质上,每个“bug watch”都是一个bug ID,它将随“sleep”时间一起传递给子例程,一旦“sleep time”结束,它必须在不阻塞父进程或对等进程的情况下重复出现

  • 我试过了。它支持类似cron的格式,但这里subs的参数必须是简单的标量,因此我排除了它

  • POE/Coro似乎是另一种选择,但我对此不太清楚(

有什么见解吗?蒂娅


-Matt.

Schedule::Cron有什么问题吗?您可以创建任何子例程引用,这样您就可以创建引用所需额外或特定数据的闭包。您不必依赖参数列表。模块是否还有其他不适合您的地方?

@(brian d foy):我认为Schedule::Cron对我有好处的原因 1:$cron->add_条目似乎没有为我提供将@arrays/$vars传递给subs的选项

$cron->add_条目($temp,{'subroutine'=>\&test1,'arguments'=>\@array});是不允许的


2:我不确定是否有办法在cron->run(detach=>1)之后添加新的cron条目;在没有重新启动脚本的情况下被触发。

如果您决定查看,那么可能值得一看,因为这是一个围绕Coro构建的web库/框架

还可以看看“蹲”在上面的web微框架。蹲式发行版附带了一些使用的示例

我尝试了Schedule::Cron。它支持类似Cron的格式,但这里subs的参数必须是简单的标量,因此我排除了它

Schedule::Cron文档说明arguments是对数组的引用,其中包含调用子例程时要使用的参数。如果愿意,请传递对参数命名数组的引用。由于Cron条目包含对@data的引用,因此可以根据需要在代码中添加或删除@data元素

$cron->add_entry(
    '* * * * *',
    subroutine => \&mysub,
    arguments => \@data,
);
正如Brian所建议的,您也可以使用闭包:

my $var = 42;
my @arr = get_stuff();

$cron->add_entry(
    '* * * * *',
    sub { mysub($var, @arr) },
);

有关闭包的详细信息,请参阅手册页。

有两件事:1:我想将args作为\&test@args传递2:脚本启动后似乎无法添加新条目。文档似乎不一致。我认为您做错了什么。