一种电信网管系统中任务调度的方法转让专利

申请号 : CN200610114478.2

文献号 : CN101136766B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张敦华

申请人 : 中兴通讯股份有限公司

摘要 :

本发明公开了一种电信网管系统中任务调度的方法,所述电信网管系统包括前台、后台,所述后台包括客户端、服务端,该方法包括:步骤一,在所述服务端设置一任务池,用于存放所述客户端发送的任务,及设置一令牌池,用于存放令牌;步骤二,对所述任务池中的新任务向所述令牌池申请一令牌,并向所述前台发送获取所述令牌的新任务;及步骤三,所述前台接收所述获取所述令牌的新任务后返回一结果至所述服务端,并将所述令牌返回至所述令牌池。采用本发明方法解决了电信网管系统中前后台任务处理的各种问题,提高了前后台任务处理能力,且任务处理数量不受限制,实现了命令结果同步返回至网管系统,同时简化了任务调度中控制的实现方式。

权利要求 :

1.一种电信网管系统中任务调度的方法,所述电信网管系统包括前台、后台,所述后台包括客户端、服务端,其特征在于,该方法包括:步骤一,在所述服务端设置一任务池,用于存放所述客户端发送的任务,及设置一令牌池,用于存放令牌;将所述客户端发送的任务存放至所述任务池,同时唤醒任务调度线程;

步骤二,任务调度线程从任务池中获取任务,判断任务池中是否有新任务,如果有新任务,则任务调度线程对所述任务池中的新任务向所述令牌池获取令牌,当所述令牌池中无可用令牌时,则所述任务调度线程阻塞并等待唤醒,当所述令牌池中有可用令牌时,向所述前台发送获取令牌的新任务,同时启动定时器;如果没有新任务,则任务调度线程阻塞并等待唤醒;

步骤三,所述前台处理完接收的所述获取令牌的新任务后返回任务的结果至所述服务端,并将所述令牌返回至所述令牌池,唤醒任务调度线程;当定时器超时,则认为任务失败,令牌返回到令牌池中,唤醒任务调度线程。

2.根据权利要求1所述的电信网管系统中任务调度的方法,其特征在于,任务调度线程从任务池中获取的新任务处于被调度任务状态。

3.根据权利要求1所述的电信网管系统中任务调度的方法,其特征在于,所述获取令牌的新任务处于获得令牌的任务状态。

4.根据权利要求1所述的电信网管系统中任务调度的方法,其特征在于,所述步骤三中,还包括步骤:当定时器超时,所述获取令牌的新任务处于任务超时状态。

说明书 :

技术领域

本发明涉及电信网管系统中任务调度的方法,特别是涉及电信网管系统中前后台任务的创建/调度/控制的方法。

背景技术

电信网管系统中经常涉及到前后台任务的处理,网管系统(后台)向前台设备发送命令的时候,常常受到各种约束。例如,在无线基站的网管系统中,网管客户端在发送命令的时候为了操作方便,需要将大量的命令一次性提交,而无线基站前台处理能力是有限的,无法同时接收如此多的命令;另外,前台处理命令的时间比较长,命令的结果无法同步返回给网管系统,有时由于网络等原因,前台结果可能会无法返回给网管系统,因此在任务处理中还需要考虑超时控制。

发明内容

本发明所要解决的技术问题在于提供一种电信网管系统中任务调度的方法,用于解决电信网管系统中前后台任务处理能力有限而导致处理的命令数量受限及命令结果无法同步返回的问题。
为了实现上述目的,本发明提供了一种电信网管系统中任务调度的方法,所述电信网管系统包括前台、后台,所述后台又包括客户端、服务端,该方法包括如下步骤:
步骤一,在所述服务端设置一任务池,用于存放所述客户端发送的任务,及设置一令牌池,用于存放令牌;
步骤二,任务调度线程从任务池中获取任务,判断任务池中是否有新任务,如果有新任务,则任务调度线程对所述任务池中的新任务向所述令牌池获取令牌,并向所述前台发送获取令牌的新任务,同时启动定时器;如果没有新任务,则任务调度线程阻塞并等待唤醒;
步骤三,所述前台处理完接收的所述获取所述令牌的新任务后返回任务的结果至所述服务端,并将所述令牌返回至所述令牌池;当定时器超时,则认为任务失败,令牌返回到令牌池中;
步骤四、唤醒任务调度线程。
所述步骤一还包括将所述客户端发送的任务存放至所述任务池的步骤,其中所述任务处于新任务状态。
所述新任务处于被调度任务状态。
所述获取所述令牌的新任务处于获得令牌的任务状态。
所述步骤二中,当所述令牌池中无所述令牌时,则所述任务调度线程阻塞并等待唤醒。
所述步骤三还包括当所定时器超时,所述获取所述令牌的新任务处于任务超时状态。
通过该电信网管系统中任务调度的方法,解决了电信网管系统中前后台任务处理的各种问题,提高了前后台任务处理能力,且任务处理数量不受限制,实现了命令结果同步返回至网管系统,同时简化了任务调度中控制的实现方式。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。

附图说明

图1为本发明的令牌池任务调度基本模型示意图;
图2为本发明的任务状态示意图;
图3为本发明的方法实现流程图。

具体实施方式

本发明方法提出的开发模式较好地实现了开发中的灵活性和拓展性,下面将结合附图和实施例具体描述本发明。
电信网管系统的后台由客户端和服务端组成,用户通过操作客户端界面向服务端发送前台任务。服务器端进行任务调度后将任务发向前台,并监控前台的返回结果。
如图1所示,为本发明的令牌池任务调度基本模型示意图。任务调度的要求是前台只允许后台同时发送有限个任务,故可以通过在服务端设置一个令牌池模型来实现任务调度。
设置于服务端上的任务池可以接收客户端发来的任务,客户端发送的任务数量不受限制,任务池接收的任务数量也不受限制。任务发到前台之前,首先要在令牌池中获得一个令牌,获取到令牌的任务才可以发到前台。令牌数量是有限的,任务获取不到令牌则需要等待。前台返回消息后,令牌返还到令牌池中。这样就保证发向前台的任务在任何时刻都不会超过令牌的数量;当任务获取令牌后,通过启动一个定时器设定一个超时时间,如果超时,则认为任务处理失败,要强行收回令牌。
以上模型只是一个任务调度的基本模型,要满足电信网管系统的要求,还需要增加一些功能,如:
1)任务超时时间重设机制
同一种任务由于设定不同,有些可能非常大,而有些则可能很小,如果使用固定的超时时间,那么它的结果很难控制。因此系统把这种任务分成一些小的子任务进行处理,前台的返回结果是针对子任务的;当前台返回一个子任务完成,则重新设置超时时间。这样系统不用设定很大的超时时间,也能完成一个大的任务。
2)任务队列机制
客户端的一个任务发送到服务端后,会创建多个前台命令,多个前台命令必须有先后关系,即前台命令必须串行。实现办法是把任务扩展为任务队列。该任务队列中的所有任务共用一个令牌,依次发到前台处理。若任务队列中有任何一个任务失败,则整个任务就失败返回。
上述两个功能可以通过对任务进行扩展来实现,一种扩展方式是将任务扩展为多子任务的方式,另一种扩展方式是将任务扩展为任务队列的方式;任务队列还可以解决前后台接口缺陷的问题;现在有些接口需要通过二次调用才能获取结果;利用任务队列可以解决该问题。
如图2所示,为本发明的任务状态示意图。任务可以有多种状态。
一个任务调度系统中有一个任务调度线程。当一个任务加入到任务池中时,它首先的状态是“新任务”状态。任务调度线程从任务池中获取新的任务,如果没有新的任务,则任务调度线程阻塞并等待唤醒,如果有新的任务,则任务变成“被调度任务”状态;然后任务调度线程去令牌池申请令牌,如果没有可用的令牌,则任务调度线程阻塞并等待唤醒,如果有可用的令牌,则任务变成“获得令牌的任务”状态;再由任务调度线程把任务发到前台。“获得令牌的任务”的任务最终会变成“完成的任务”状态或“任务超时”状态。
“新任务”和/或“被调度任务”可以执行取消操作进行取消。取消任务的实现方式是将任务对象做一个取消标志,当任务调度线程调度一个任务时,首先检查该任务是否有取消标志,如果有,则无须继续后续的工作,直接将任务置为结束即可。取消任务只能针对“新任务”、“被调度任务”,任务一旦提交到前台,则不允许取消。
“任务取消”,“任务超时”,“完成的任务”3个状态是终止状态;其它是中间状态。
如图3所示,为本发明的方法实现流程图。该流程具体包括如下步骤:
步骤301,后台用户向前台发送任务命令;
步骤302,任务加入到任务池中,同时唤醒任务调度线程;
步骤303,任务调度线程从任务池中获取任务;
步骤304,任务调度线程判断任务池中是否有新任务,如果有新任务,则执行步骤305;如果没有新任务,则执行步骤312;
步骤305,任务调度线程向令牌池申请令牌并获取令牌;
步骤306,任务调度线程判断令牌池中是否有可用的令牌,如果有可用的令牌,则执行步骤307,如果没有可用令牌,则执行步骤311;
步骤307,将任务发到前台,并启动定时器;
步骤308,前台返回任务的结果到服务端,并执行步骤310;
步骤309,定时器超时,执行步骤310;
步骤310,令牌返回到令牌池中,供其它任务使用,同时唤醒任务调度线程;
步骤311,任务调度线程阻塞并等待唤醒;及
步骤312,任务调度线程阻塞并等待唤醒。
本发明根据一种通用任务调度的架构,提出了一种基于令牌的任务调度方法,采用该方法解决了电信网管系统中任务调度的控制难题,简化了任务调度中控制的实现方式。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。