一种多级别任务处理方法

文档序号:6510870阅读:115来源:国知局
一种多级别任务处理方法
【专利摘要】本发明涉及一种多级别任务处理方法,包括建立带有头下标和尾下标的队列;将等待分发的任务放入队列中时,要先判断队列是否已满,如果已满则等待,待队列中有空位时,向队列中放入任务,放任务时,低优先级任务放在头下标所指位置,高优先级任务放在尾下标所指位置,从队列中取出任务时,从尾下标所指位置取出任务进行处理;其中,向队列中放入任务与从队列中取出任务是异步进行的,尤其是在向尾下标放任务时,要将队列加上等待锁,防止在向尾下标所指位置放高优先级任务时,同时发生从尾下标所指位置取任务的现象;本发明所述方法针对不同级别的任务进行处理,保证了不同级别任务所需的响应速度。
【专利说明】 一种多级别任务处理方法
【技术领域】
[0001]本发明涉及电信领域,尤其涉及一种多级别任务处理方法。
【背景技术】
[0002]BOSS系统中存在多种任务触发方式:文件方式,工单方式,实时消息方式,不同触发在响应速度上有不同的要求。
[0003]电信在线系统,要求一套系统能同时处理三种任务(文件、工单、消息),但这三种任务要求的响应处理效率不同,如消息类要求实时响应,返回处理结果。
[0004]然而现有的任务处理方法,难以做到针对不同级别的任务进行分别处理,进而实现不同的响应速度。
[0005]因此,需要研发一种针对不同级别的任务有不同响应速度的处理方法。

【发明内容】

[0006]本发明所要解决的技术问题是针对现有技术的不足,提供一种多级别任务处理方法,保证不同级别的任务有不同的响应速度。
[0007]本发明解决上述技术问题的技术方案如下:一种多级别任务处理方法,包括如下步骤:
[0008]步骤1:建立带有头下标和尾下标的队列;
[0009]步骤2:获取等待分发的任务;
[0010]步骤3:判断队列是否已满,如果已满则等待,待队列中有空位时,执行步骤4 ;如果未满则直接执行步骤4 ;
[0011]步骤4:判断待分发任务的级别,如果是低优先级任务执行步骤5 ;如果高优先级任务则执行步骤6 ;
[0012]步骤5:头下标朝队列入口方向移动一个位置,将所述低优先级任务放置在头下标所指位置,执行步骤7;
[0013]步骤6:尾下标朝队列出口 口方向移动一个位置,将所述高优先级任务放置在尾下标所指位置,执行步骤7;
[0014]步骤7:处理任务时,取出尾下标所指位置内存放的任务,将尾下标朝队列入口方向移动一个位置,执行步骤8;
[0015]步骤8:判断是否仍有待分发的任务,如果有,返回步骤2,否则待队列中任务均处
理完毕,结束。
[0016]在上述技术方案的基础上,本发明还可以做如下改进。
[0017]进一步,步骤2中所述待分发的任务都预先根据任务类型及其所需的响应速度,为每个待分发的任务标定优先级。
[0018]进一步,步骤5、6中向队列里放任务与步骤7中从队列中取任务是异步处理的。
[0019]进一步,步骤5中将所述低优先级任务放入队列的具体步骤如下:[0020]步骤5.1:判断队列是否有等待锁,如果有则等待,等到等待锁释放后执行步骤
5.2 ;否则直接执行步骤5.2 ;
[0021]步骤5.2:判断队列中是否有互斥锁,如果有则等待,等互斥锁释放,在头下标所指位置加互斥锁;如果没有则直接在头下标所指位置加互斥锁;
[0022]步骤5.3:将低优先级任务放入头下标所指位置;
[0023]步骤5.4:解除互斥锁。
[0024]进一步,步骤6中将高优先级任务放入队列的具体步骤如下:
[0025]步骤6.1:判断队列是否有等待锁,如果有则等待,等到等待锁释放后,再在队列上加上等待锁,执行步骤6.2 ;否则直接在队列上加上等待锁,执行步骤6.2 ;
[0026]步骤6.2:判断队列中是否有互斥锁,如果有则等待互斥锁释放后,在尾下标所指位置加互斥锁,如果没有则直接在尾下标所指位置加互斥锁;
[0027]步骤6.3:将高优先级任务放入尾下标所指位置;
[0028]步骤6.4:解除互斥锁和等待锁。
[0029]进一步,步骤7中取出尾下标所指队列位置内存放的任务的具体步骤如下:
[0030]步骤7.1:判断队列是否有等待锁,如果有则等待,等到等待锁释放后执行步骤7.2 ;否则直接执行步骤7.2 ;
[0031]步骤7.2::判断队列中是否有互斥锁,如果有则等待,等待互斥锁释放后,在尾下标所指位置加互斥锁,如果没有则直接在尾下标所指位置加互斥锁;
[0032]步骤7.3:从尾下标所指位置取出所存储的任务;
[0033]步骤7.4:释放互斥锁。
[0034] 本发明的有益效果是:满足不同级别任务的不同响应速度,针对不同级别的任务,用尾下标标示队列中的高优先级任务,头下标标示队列中低优先级任务,获取任务进行处理时,都是从尾下标所指位置取出的,这就保证了高优先级任务优先处理,保证了其响应速度。
【专利附图】

【附图说明】
[0035]图1为本发明所述一种多级别任务处理流程图;
[0036]图2为本发明所述步骤5的流程图;
[0037]图3为本发明所述步骤6的流程图;
[0038]图4为本发明所述步骤7的流程图。
【具体实施方式】
[0039]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0040]如图1所示,一种多级别任务处理方法,包括如下步骤:
[0041]步骤1:建立带有头下标和尾下标的队列;
[0042]步骤2:获取等待分发的任务;
[0043]步骤3:判断队列是否已满,如果已满则等待,待队列中有空位时,执行步骤4 ;如果未满则直接执行步骤4 ;[0044]步骤4:判断待分发任务的级别,如果是低优先级任务执行步骤5 ;如果高优先级任务则执行步骤6 ;
[0045]步骤5:头下标朝队列入口方向移动一个位置,将所述低优先级任务放置在头下标所指位置,执行步骤7;
[0046]步骤6:尾下标朝队列出口口方向移动一个位置,将所述高优先级任务放置在尾下标所指位置,执行步骤7;
[0047]步骤7:处理任务时,取出尾下标所指位置内存放的任务,将尾下标朝队列入口方向移动一个位置,执行步骤8;
[0048]步骤8:判断是否仍有待分发的任务,如果有,返回步骤2,否则待队列中任务均处
理完毕,结束。
[0049]其中,步骤2中所述待分发的任务都预先根据任务类型及其所需的响应速度,为每个待分发的任务标定优先级。
[0050]其中,步骤5、6中向队列里放任务与步骤7中从队列中取任务是异步处理的。
[0051]如图2所示,步骤5中将所述低优先级任务放入队列的具体步骤如下:
[0052]步骤5.1:判断队列是否有等待锁,如果有则等待,等到等待锁释放后执行步骤
5.2 ;否则直接执行步骤5.2 ;
[0053]步骤5.2:判断队 列中是否有互斥锁,如果有则等待,等互斥锁释放,在头下标所指位置加互斥锁;如果没有则直接在头下标所指位置加互斥锁;
[0054]步骤5.3:将低优先级任务放入头下标所指位置;
[0055]步骤5.4:解除互斥锁。
[0056]如图3所示,步骤6中将高优先级任务放入队列的具体步骤如下:
[0057]步骤6.1:判断队列是否有等待锁,如果有则等待,等到等待锁释放后,再在队列上加上等待锁,执行步骤6.2 ;否则直接在队列上加上等待锁,执行步骤6.2 ;
[0058]步骤6.2:判断队列中是否有互斥锁,如果有则等待互斥锁释放后,在尾下标所指位置加互斥锁,如果没有则直接在尾下标所指位置加互斥锁;
[0059]步骤6.3:将高优先级任务放入尾下标所指位置;
[0060]步骤6.4:解除互斥锁和等待锁。
[0061]如图4所示,步骤7中取出尾下标所指队列位置内存放的任务的具体步骤如下:
[0062]步骤7.1:判断队列是否有等待锁,如果有则等待,等到等待锁释放后执行步骤
7.2 ;否则直接执行步骤7.2 ;
[0063]步骤7.2::判断队列中是否有互斥锁,如果有则等待,等待互斥锁释放后,在尾下标所指位置加互斥锁,如果没有则直接在尾下标所指位置加互斥锁;
[0064]步骤7.3:从尾下标所指位置取出所存储的任务;
[0065]步骤7.4:释放互斥锁。
[0066]综上可知,只在向尾下标所指位置放任务时要将队列加上等待锁,这样可以在有高优先级任务要往队列放时,暂停取任务、放低优先级任务的操作,保证高优先级任务优先放队列。
[0067]等待锁,保证高优先级任务先放到任务队列;互斥锁,避免放任务、取任务同时操作队列的同一个位置。[0068]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种多级别任务处理方法,其特征在于,包括如下步骤: 步骤1:建立带有头下标和尾下标的队列; 步骤2:获取等待分发的任务; 步骤3:判断队列是否已满,如果已满则等待,待队列中有空位时,执行步骤4 ;如果未满则直接执行步骤4 ; 步骤4:判断待分发任务的级别,如果是低优先级任务执行步骤5 ;如果高优先级任务则执行步骤6 ; 步骤5:头下标朝队列入口方向移动一个位置,将所述低优先级任务放置在头下标所指位置,执行步骤7; 步骤6:尾下标朝队列出口口方向移动一个位置,将所述高优先级任务放置在尾下标所指位置,执行步骤7; 步骤7:处理任务时,取出尾下标所指位置内存放的任务,将尾下标朝队列入口方向移动一个位置,执行步骤8; 步骤8:判断是否仍有待分发的任务,如果有,返回步骤2,否则待队列中任务均处理完毕,结束。
2.根据权利要求1所述一种多级别任务处理方法,其特征在于,步骤2中所述待分发的任务都预先根据任务类型及其所需的响应速度,为每个待分发的任务标定优先级。
3.根据权利要求1所述一.种多级别任务处理方法,其特征在于,步骤5、6中向队列里放任务与步骤7中从队列中取任务是异步处理的。
4.根据权利要求1所述一种多级别任务处理方法,其特征在于,步骤5中将所述低优先级任务放入队列的具体步骤如下: 步骤5.1:判断队列是否有等待锁,如果有则等待,等到等待锁释放后执行步骤5.2 ;否则直接执行步骤5.2 ; 步骤5.2:判断队列中是否有互斥锁,如果有则等待,等互斥锁释放,在头下标所指位置加互斥锁;如果没有则直接在头下标所指位置加互斥锁; 步骤5.3:将低优先级任务放入头下标所指位置; 步骤5.4:解除互斥锁。
5.根据权利要求1所述一种多级别任务处理方法,其特征在于,步骤6中将高优先级任务放入队列的具体步骤如下: 步骤6.1:判断队列是否有等待锁,如果有则等待,等到等待锁释放后,再在队列上加上等待锁,执行步骤6.2 ;否则直接在队列上加上等待锁,执行步骤6.2 ; 步骤6.2:判断队列中是否有互斥锁,如果有则等待互斥锁释放后,在尾下标所指位置加互斥锁,如果没有则直接在尾下标所指位置加互斥锁; 步骤6.3:将高优先级任务放入尾下标所指位置; 步骤6.4:解除互斥锁和等待锁。
6.根据权利要求1所述一种多级别任务处理方法,其特征在于,步骤7中取出尾下标所指队列位置内存放的任务的具体步骤如下: 步骤7.1:判断队列是否有等待锁,如果有则等待,等到等待锁释放后执行步骤7.2 ;否则直接执行步骤7.2 ;步骤7.2::判断队列中是否有互斥锁,如果有则等待,等待互斥锁释放后,在尾下标所指位置加互斥锁,如果没有则直接在尾下标所指位置加互斥锁; 步骤7.3:从尾下标所指位置取出所存储的任务; 步骤7.4:释放互 斥锁。
【文档编号】G06F9/46GK103473126SQ201310407686
【公开日】2013年12月25日 申请日期:2013年9月9日 优先权日:2013年9月9日
【发明者】周伟 申请人:北京思特奇信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1