社区
脚本语言
帖子详情
perl如何实现定时执行功能
shootingstar_w
2008-05-28 01:38:25
我写了个定时采集服务器数据的程序,现在想每5分钟执行一次,请问在程序中如何实现。
while(1)
{
###采集程序
...
sleep(300);
}
感觉这样的话程序部分太大。别的有什么处理方法吗?比如alarm...
请问该如何实现
...全文
1147
10
打赏
收藏
perl如何实现定时执行功能
我写了个定时采集服务器数据的程序,现在想每5分钟执行一次,请问在程序中如何实现。 while(1) { ###采集程序 ... sleep(300); } 感觉这样的话程序部分太大。别的有什么处理方法吗?比如alarm... 请问该如何实现
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shootingstar_w
2008-05-29
打赏
举报
回复
[Quote=引用 5 楼 iambic 的回复:]
sleep不挺好的么。什么叫程序部分太大?
[/Quote]
就是程序部分很长,然后还要在主程序外加while
感觉不太美观 呵呵
iambic
2008-05-29
打赏
举报
回复
多写sub对性能没有影响……
shootingstar_w
2008-05-29
打赏
举报
回复
[Quote=引用 7 楼 iambic 的回复:]
写到一个sub里面不就完了。sleep恐怕是对程序结构(和可读性)影响最小的方法了。
[/Quote]
恩 这应该是比较好的办法了 我已经在程序中嵌套了几个SUB了 对性能会有影响吗
[Quote=引用 8 楼 fibbery 的回复:]
他所说的程序部分太大是采集的时间如果过长,那么采集周期就会超过5分钟!
你可以使用线程,将采集封装到函数,然后创建你的采集线程。
[/Quote]
可能我说的不够清楚,我是指程序代码过长。
暂时采集周期还没有超过5分钟,而且我就是通过线程采集的。还是谢谢!
fibbery
2008-05-29
打赏
举报
回复
他所说的程序部分太大是采集的时间如果过长,那么采集周期就会超过5分钟!
你可以使用线程,将采集封装到函数,然后创建你的采集线程。
iambic
2008-05-29
打赏
举报
回复
写到一个sub里面不就完了。sleep恐怕是对程序结构(和可读性)影响最小的方法了。
iambic
2008-05-28
打赏
举报
回复
sleep不挺好的么。什么叫程序部分太大?
wx红杉树
2008-05-28
打赏
举报
回复
wait
alarm
sigtrap / signal
上面的函数和模块会对你有用的
#!/usr/bin/perl
$SIG{ALRM}=\&timer;
alarm 1;
sub timer {
alarm 0;
print scalar localtime,"\n";
$SIG{ALRM}=\&timer;
alarm 1;
}
while (1) {sleep;}
shootingstar_w
2008-05-28
打赏
举报
回复
[Quote=引用 2 楼 jiuchang 的回复:]
perl里有alarm的功能,需要和eval配合使用
示例如下:
eval {
local $SIG{ALRM} = sub { die "alarm\n" }; # NB: \n required
alarm $timeout;
$nread = sysread SOCKET, $buffer, $size;
alarm 0;
};
if ($@) {
die unless $@ eq "alarm\n"; # propagate unexpected errors
# timed out
}
else {
# didn't
}
[/Quote]
那是不是只要定义这样一个信号量就可以了吗,和采集程序主体是怎样联系起来的呢?
jiuchang
2008-05-28
打赏
举报
回复
perl里有alarm的功能,需要和eval配合使用
示例如下:
eval {
local $SIG{ALRM} = sub { die "alarm\n" }; # NB: \n required
alarm $timeout;
$nread = sysread SOCKET, $buffer, $size;
alarm 0;
};
if ($@) {
die unless $@ eq "alarm\n"; # propagate unexpected errors
# timed out
}
else {
# didn't
}
xiaoyu9805119
2008-05-28
打赏
举报
回复
win下有计划任务
linux之类的有cron,自己定义一个就行了。
perl
学习简明教程
perl
简明教程,html版,可能字体较小,如果这样的话可以使用[Ctrl]+鼠标滑轮将字体放大。
Perl
进行定期弹窗提醒
Perl
进行定期弹窗提醒 Windows下定期弹窗提醒的示例
perl
自动发邮件
可
实现
perl
自动发送邮件 可以
实现
邮件自动发送 后台
执行
perl
写的windows 常用工具集合
perl
写的windows 常用工具集合
perl
网络批量抓取配置工具
批量抓取网络设备配置,通过crontab可以
定时
自动
执行
,并能
实现
网络自动化变更。
脚本语言
37,743
社区成员
34,212
社区内容
发帖
与我相关
我的任务
脚本语言
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
复制链接
扫一扫
分享
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
试试用AI创作助手写篇文章吧
+ 用AI写文章