免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1363 | 回复: 2

请教实现类似 unix系统中crontab 的时间监控功能 的算法 [复制链接]

论坛徽章:
0
发表于 2003-03-02 21:13 |显示全部楼层
我现在的主程序是每sleep5秒运行一次,

然后监控判断当今时刻是否需要触发某一动作,

我是模仿crontab ,给用户设置 每月的第几号,每星期的第几周, 每天的第几时,每小时的第几分钟
现在在具体判断运行时发现问题,即某一时某一分钟符合条件,sleep5秒后依旧时符合条件。我现在为每个判断设置了一个GregorianCalendar,第一次符合时就设置该GregorianCalendar 为当前时间,第二次时如果是同一天(或者同一小时,同一分钟),就忽略跳出。但现在问题又来了,如果是原来设置的两个条件(比如某小时某分钟),在程序运行时如果仅仅改变了其中的一个条件,就没法判断了,请问有何解决办法?

同时想请教下各位做过类似功能的,我这样做好不好,如何改进? 或者有没有其他更好的方法?
谢谢
btw 我用的是java ,但语言不是问题,现在只讨论算法

论坛徽章:
0
发表于 2003-03-02 21:57 |显示全部楼层

请教实现类似 unix系统中crontab 的时间监控功能 的算法

up

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2003-03-03 00:03 |显示全部楼层

请教实现类似 unix系统中crontab 的时间监控功能 的算法

不是特别明白你的意思。


为什么第一次设置的时候不能判断这两个条件,如果符合,就设置这两个条件好了。


我用java做过一个类似的东西。但是利用了crontab(unix下)或者at(windows)这样的
工具。

我的应用对不同的对象有不同的周期性操作需求,但是却不能直接用crontab和at,因为
对象有可能很多,而且直接操作crontab和at也不灵活。

我的做法是为每个操作对象定义一个起始操作的时间,再定义一个操作周期。我的运行程序是由cron或者at定时运行的。运行程序就是读取这些对象的周期配置,判断这个时间段,该不该操作某个对象。判断的根据有几个,一个是cron调用应用的周期,一个就是对象
第一次操作的时间,还有就是两次操作的周期。

举个例子,应用在cron中5分钟运行一次。某个对象操作周期是4小时一次,第一次是某天
的2点,应用在14:00执行的时候,我就会判断这个对象该不该在14:00~14:05之间操作。
而这个判断是可以根据第一次时间和操作周期来决定的。

我想不通过cron来做也是一样的。那就是sleep的间隔时间,作为划分区间的依据。

不知道能不能实现你的想法?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP