一种调度任务的方法、装置和系统的制作方法

文档序号:6468122阅读:114来源:国知局

专利名称::一种调度任务的方法、装置和系统的制作方法
技术领域
:本发明涉及计算机技术,特别地涉及一种调度任务的方法、装置和系统。
背景技术
:在一个大型应用系统中,存在多台部署了相同的任务调度系统的任务J!良务器,这些任务服务器根据"谁先获取到任务谁就先调度执行"的原则执行应用服务器发布的任务。如图1所示,11为应用服务器,12为数据库服务器,13为系统中包含的两台以上任务服务器。应用服务器11发布任务,即生成任务数据,并通常保存在数据库服务器12中。任务服务器13从数据库服务器12中获取任务数据。通常情况下,为了保证业务逻辑的正确,任务被一台应用服务器获取到之后,数据库服务器12中就删除该任务的信息。在实际应用中,在对任务的数据进行测试时,在任务^^务器执行该任务过程中修改了该任务的数据并重新发布该任务,如果此时由另一台任务服务器获取了该任务,则会导致测试无法达到预期目的。此外,在调度任务的过程中,如果任务服务器在获取任务的数据之后,在执行时如果由于自身硬件配置的原因而无法正确执行该任务,则该任务在应用系统中失效,导致系统工作异常。为了能够正确地执行任务,保证应用系统的工作状态正常,现有的做法是务器,使任务只能由该启动的任务服务器执行。这种做法由于关闭了一些任务服务器,从而降低了系统的处理能力。
发明内容本发明的目的是提供一种任务调度的方法、装置和系统,以解决现有技术中为了将任务调度到指定的任务服务器,降低了系统的处理能力的问题。本发明实施例中的一种调度任务的方法,应用于包含两台以上任务服务器的应用系统,包括在数据库服务器中保存该任务的数据并保存任务与有权限执行该任务的任务服务器的对应关系;任务服务器根据所述对应关系执行自身有权限执行的任务。本发明实施例中的一种任务服务器,用于从数据库服务器中获取任务的数据以及执行任务,包括确认模块,用于根据预设的任务与有权限执行该任务的任务服务器的对应关系确认一项任务服务器有权限执行的任务;获取模块,用于从数据库服务器中获取确认模块确认的任务的数据;执行模块,用于根据获取模块获取的数据执行任务。本发明实施例中的又一种任务服务器,用于从数据库服务器中获取任务的数据以及执行任务,包括获取漠块,用于从数据库服务器中获取任务的数据;设置模块,用于设置获取模块获取的任务的数据在数据库服务器中的属性为不可读;判断模块,用于在获取模块获取任务的数据后,根据预设的任务与有权限执行该任务的任务服务器的对应关系判断任务服务器是否有权限执行该任务;执行模块,用于执行任务服务器有权限执行的任务;所述获取模块进一步用于当判断模块判断任务服务器没有权限执行获取的任务,则不重复地从数据库服务器中获取其他任务的数据;所述设置模块进一步用于当判断模块判断任务服务器没有权限执行获取的任务,则设置该任务的数据在数据库服务器中的属性为可读。本发明实施例中的一种应用服务器,包括任务数据生成模块,用于生成任务的数据;权限设置模块,用于对于每项任务,在应用系统中选择有权限执行该任务的任务服务器,保存任务与有权限执行该任务的任务服务器的信息。本发明实施例中的一种调度任务的系统,包括应用服务器,用于生成每项任务的数据和任务与有权限执行该任务的任务服务器的对应关系;数据库服务器,用于保存应用服务器生成的所述数据和对应关系;任务服务器,用于根据所述对应关系执行自身有权限执行的任务。应用本发明实施例给出的技术方案,通过引入权限机制,建立了任务与有权限执行该任务的任务服务器的对应关系,对每项任务规定有权限执行该任务的任务服务器,任务服务器根据自身权限执行任务,从而确保任务能够被调度到指定的任务服务器而执行,并且不会降低系统原有的处理能力。图1为任务调度的系统示意图2为本发明实施例中的方法流程图。具体实施例方式为了使任务由指定的任务服务器执行并且无需停止其他任务服务器的服务,在本发明实施例中,对于图l所示的应用系统,根据图2所示的步骤处理任务步骤S21:应用服务器生成任务的数据并保存在数据库服务器中,并且在数据库服务器中保存该任务和有权限执行该任务的任务服务器的对应关系。该对应关系在本发明实施例中保存在如表1所示的调度列表中。在本步骤中,应用服务器对生成的每项任务,都设定了一个或几个任务服务器有权限执行该任务,也可以设定应用系统中所有任务服务器有权限执行该任务。表l每一行包含任务名称与有权限执行该任务的服务器的名称。这里使用任务名称来标识每项任务,也可以用任务的其他信息如生成任务的数据时给出的流水号。这里使用任务服务器的名称来标识每项任务服务器,也可以用任务服务器的其他信息,如任务服务器的编号或硬件标识信息。<table>tableseeoriginaldocumentpage7</column></row><table>表1对于表1中第1列记录任务名,第2列记录有权限执行第1列所示任务的应用服务器的名称。每行第2列涉及的应用服务器可以是一台,也可以是多台;也可以是应用系统中所有任务服务器,如表1第2列第3行所示。步骤S22:任务服务器根据所述对应关系执行自身有权限执行的任务。在本发明实施例中对任务服务器设定执行任务的权限,使得任务能够被预先指定的一台或多台任务服务器执行。步骤S22是应用系统中每台开启的任务服务器在运行时执行的步骤,它们必须根据设定的权限来执行任务,步骤S22具体可以有两种方式,下面分别对步骤S22包含的具体步骤进行说明。步骤S22的一种执行方式如下任务服务器根据调度列表查找自身有权限执行的任务。例如任务服务器R2,它从调度列表中查得自身有权限执行任务1、2和3,于是随机地获取其中一项任务的数据,然后执行该任务。在获取到任务的数据之后还可以删除数据库服务器中该任务的数据,以免其他任务服务器执行了该任务,造成重复执行的逻辑错误。在这种方式下,任务服务器在获取任务数据之前,先确认了哪些任务是自身有权限执行的,然后再有目的地获取这些任务的数据。这种方式适用于每台任务服务器有权限执行的任务在数据库服务器中占有比例较小的情况,保证了任务服务器每次能够有效地获取任务数据,节省了获取到自身没有权限的任务而需要的获取才喿作所占时间。另外,任务服务器也可以先获取任务的数据,再来判断自身是否有权限执行,即步骤S22还可以按照如下的方式执行任务服务器从数据库服务器中每次获取一项任务的数据,这里的获取可以是随机地获取任务的数据,然后设置数据库服务器中该任务的数据的属性为不可读,以免其他任务服务器获取该任务的数据,再根据调度列表判断自身是否有权限执行该任务,若是,则执行该任务,否则设置数据库服务器中该任务的数据的属性为可读,以及从数据库服务器中获取其他任务的数据,该其他任务应当是任务服务器没有获取过的任务。这种方式适用于数据库服务器中仅有较少数量的任务需要指定的任务服务器来执行,在获取到任务的数据之后根据该任务能够快速地在任务列表中找到有权限执行该任务的任务服务器,并在自身有权限执行任务的情况下立即执行任务。在步骤S22中任务服务器获取并执行了有权限执行的任务,接下来进行步骤S23。步骤S23:任务服务器在执行任务之后,删除数据库服务器中该任务的数据。在本步骤中任务服务器在执行任务之后可根据需要修改所述对应关系。因为任务已经被执行,所以为了避免重复执行的逻辑错误发生,此时可以在数据库服务器中删除任务的数据,还可以在所述调度列表中删除该任务和执行该任务的任务服务器的对应关系,这样同时能够释放数据库服务器的存储空间。在本发明实施例的方法中,任务服务器在执行任务之前对自身的权限进行了判断,若有权限则执行任务,反之则放弃执行,这样能够保证任务被调度到有权限的任务服务器。统。因为若该系统中只包含一台任务服务器,则所有任务都应当由该任务服务器来完成,不存在调度任务的问题。基于上述方法,下面说明本发明实施例中相应的装置。本发明实施例给出的调度任务的系统由应用服务器、数据库服务器以及任务服务器组成。应用服务器,应关系执行该任务的任务服务器的对应关系。每台任务服务器用于才艮据任务与有权限执行该任务的任务服务器的对应关系执行自身有权限执行的任务。应用服务器的一种结构是包括任务数据生成模块和权限设置模块。任务数据生成模块用于生成任务的数据。权限设置模块用于保存任务与有权限执行该任务的任务服务器的对应关系。任务服务器的一种结构是包括确认模块、获取模块和执行模块。关系确认一项任务服务器有权限执行的任务;获取模块用于从数据库服务器中获取确认模块确认的任务的数据;执行模块用于根据获取4莫块获取的数据执行任务。此外任务服务器还可以包括删除模块,用于在获取模块获取到任务的数据之后,删除数据库服务器中该任务的数据。任务服务器的另一种结构是包括获取模块、设置模块、判断模块和执行模块。获取模块用于从数据库服务器中获取任务的数据。设置模块用于设置获取模块获取的任务的数据在数据库服务器中的属性为不可读。判断模块用于在获取模块获取任务的数据后,根据预设的任务与有权限执行该任务的任务服务器的对应关系判断任务服务器是否有权限执行该任务。执行模块用于执行任务服务器有权限执行的任务。获取4莫块进一步用于当判断模块判断任务服务器没有权限执行获取的任务,则不重复地从数据库服务器中获取其他任务的数据。设置模块进一步用于当判断模块判断任务服务器没有权P艮执行获取的任务,则设置该任务的数据在数据库服务器中的属性为可读。此外任务服务器还可以包括删除模块,用于在获取模块获取到任务的数据之后,删除数据库服务器中该任务的数据。应用本发明实施例给出的技术方案,通过引入权限机制,建立了任务与有权限执行该任务的任务服务器的对应关系,对每项任务规定了有权限执行该任务的任务服务器,从而确保任务能够被调度到指定的任务服务器而执行。此外因为应用本发明实施例给出的技术方案,在需要保证任务被指定任务服务器执行时,并不需要关闭任何任务服务器,所以本发明实施例中的技术方案也不会影响系统原有的任务处理能力。明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。权利要求1、一种调度任务的方法,应用于包含两台以上任务服务器的应用系统,其特征在于,包括在数据库服务器中保存各任务的数据并保存任务与有权限执行该任务的任务服务器的对应关系;任务服务器根据所述对应关系执行自身有权限执行的任务。2、如权利要求1所述方法,其特征在于,所述任务服务器根据所述对应关系执行自身有权限执行的任务包括所述应用系统中的任务服务器根据所述对应关系,每次确认一项自身有权限执行的任务然后获取该任务的数据,再执行该任务。3、如权利要求2所述方法,其特征在于,所述获取该任务的数据之后进一步包括步骤删除数据库服务器中所述该任务的数据。4、如权利要求1所述方法,其特征在于,所述任务服务器根据所述有权限执行该任务的任务服务器信息执行自身有权限执行的任务包括所述任务服务器从数据库服务器中每次获取一项任务的数据然后设置数据库服务器中该任务的数据的属性为不可读,再根据所述对应关系判断自身是否有权限执行该任务,若是,则执行该任务,否则设置数据库服务器中该任务的数据的属性为可读,以及不重复地从数据库服务器中获取其他任务的数据。5、如权利要求4所述方法,其特征在于,所述执行该任务之前进一步包括步骤删除数据库服务器中该任务的数据。6、一种任务服务器,用于从数据库服务器中获取任务的数据以及执行任务,其特征在于,包括关系确认一项任务服务器有权限执行的任务;获取模块,用于从数据库服务器中获取确认模块确认的任务的数据;执行模块,用于根据获取模块获取的数据执行任务。7、如权利要求6所述任务服务器,其特征在于,进一步包括删除模块,用于在获取模块获取到任务的数据之后,删除数据库服务器中该任务的数据。8、一种任务服务器,用于从数据库服务器中获取任务的数据以及执行任务,其特征在于,包括获取模块,用于从数据库服务器中获取任务的数据;设置模块,用于设置获取模块获取的任务的数据在数据库服务器中的属性为不可读;判断模块,用于在获取模块获取任务的数据后,根据预设的任务与有权限执行该任务的任务服务器的对应关系判断任务服务器是否有权限执行该任务;执行模块,用于执行任务服务器有权限执行的任务;所述获取模块进一步用于当判断模块判断任务服务器没有权限执行获取的任务,则不重复地从数据库服务器中获取其他任务的数据;所述设置模块进一步用于当判断模块判断任务服务器没有权限执行获取的任务,则设置该任务的数据在数据库服务器中的属性为可读。9、如权利要求8所述任务服务器,其特征在于,进一步包括删除模块,用于在获取模块获取到任务的数据之后,删除数据库服务器中该任务的数据。10、一种应用服务器,其特征在于,包括任务数据生成模块,用于生成任务的数据;权限设置模块,用于保存任务与有权限执行该任务的任务服务器的对应关系。11、一种调度任务的系统,其特征在于,包括应用服务器,用于生成每项任务的数据和任务与有权限执行该任务的任务服务器的对应关系;数据库服务器,用于保存应用服务器生成的所述数据和对应关系;任务服务器,用于根据所述对应关系执行自身有权限执行的任务。全文摘要本发明提供一种调度任务的方法、装置和系统,用以解决现有技术中在将任务调度到指定任务服务器时必须关闭其他任务服务器从而降低系统处理能力的不足之处。实施例阐述的方法应用于包含两台以上任务服务器的应用系统,在数据库服务器中保存各任务的数据并保存任务与有权限执行该任务的任务服务器的对应关系;任务服务器根据所述对应关系执行自身有权限执行的任务。实施例还公开了基于上述方法的装置与系统。本发明通过引入权限机制,对每项任务规定了有权限执行该任务的任务服务器,从而确保任务能够被调度到指定的任务服务器并且无需关闭其他应用服务器。文档编号G06F9/46GK101408852SQ200810178438公开日2009年4月15日申请日期2008年11月26日优先权日2008年11月26日发明者金伟安申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1