[Ubuntu-zh] 有设计过cron 里面的时间 那种数据结构的嘛? 给下思路

Guannan Ma mythmgn在gmail.com
星期三 十月 6 16:15:40 BST 2010


Hi, all,

最近遇到个问题, 需要设计类似cron里面时间定义的timer数据结构.

以下是cron的定义

[[[minute hour  day_of_month month day_of_week]]]  command

我需要实现除了command之外的timer数据结构.

我目前的想法是如下:


minute hour dayof_.....  每一项做二叉线段树 每个线段树存储不交叉的内容.

如下(以minute为例):
    
            [12 ,19]
        |              |        
[1,9]       [30  ,  38]
               |             |
             [22,28]   [40, 50]
                                |
                                52

hour dayof ...... 依次类推

做timer的时候, 计算最近的match点剩余的时间(XX秒).并返回.

(做计算的时候反序 minute<-hour<-day_of_month<-month<-day_of_week 判断最
近时间距离(秒为单位), 即 先判断day_of_week 最后判断minute)


一个      

filter{
     line_item m_h_dom_mon_dow[5]; //分别存 分钟 小时 日 月 星期中的日
}

timer_DIY{

filter accept[MAX_ACCEPT_SIZE];  //这个是线段树的数组, 可以有N个这样的线
段树组成timer. 决策的时候遍历计算, 取最小值为下一次timer的触发时间.

day array_deny[xx]; //这个是某些特殊的节假日等的filter 
}


有谁做过这方面的数据结构嘛? 能分享下 我觉得我的很笨拙.. 


谢谢
  

-- 
Guannan Ma <mythmgn在gmail.com>

-------------- 下一部分 --------------
一个HTML附件被移除...
URL: https://lists.ubuntu.com/archives/ubuntu-zh/attachments/20101006/a54224db/attachment.htm 


关于邮件列表 ubuntu-zh 的更多信息