我正在提及this问题,但不想像半年前那样将其发布在那里&它已经回答了。
我认为我需要在线程中设置警告,因为它正在侦听连接(套接字),我不知道在客户端发出命令之前设置警报的时间。
短上下文:客户端发出命令,命令我的脚本运行自写的perl模块。如果它运行的时间比应该的长,则需要杀死该模块。这个“应该”非常具体,将在每个模块的配置文件中写入。
我在一个简单的perl脚本中尝试了闹钟,它运行得很好 - 即使是我自己的消息。
我可以让闹钟退出剧本,但它根本没有给我留言。
使用this示例,直到我发现可能与线程不同。
然后我尝试了 Thread :: alarm($ time),但是当我在3周前开始使用perl时,我无法正确实现它(它什么也没做。它确实没有。甚至没有结束该计划。)
您是否需要任何代码才能提供帮助,或者是否有一个网站上有我可以使用的示例以及我找不到的示例?
答案 0 :(得分:0)
您是否已尝试AnyEvent?
AnyEvent让你设置观察者像定时器一样:
# one-shot or repeating timers
my $w = AE::timer $seconds, 0, sub { ... }; # executed only once
my $w = AE::timer $seconds, $interval, sub { ... }; # executed every $interval
$seconds
可以在配置阶段,在线程开始时定义。
在回调中,您可以使用与杀死程序相同的代码。
AnyEvent的日志框架也AnyEvent::Log
,默认情况下不记录任何内容,但您可以启用一些日志记录,以查看它是否符合您对消息的需求。