CN104734923B - 应用任务的执行控制方法和系统、消息服务器 - Google Patents
应用任务的执行控制方法和系统、消息服务器 Download PDFInfo
- Publication number
- CN104734923B CN104734923B CN201310700663.XA CN201310700663A CN104734923B CN 104734923 B CN104734923 B CN 104734923B CN 201310700663 A CN201310700663 A CN 201310700663A CN 104734923 B CN104734923 B CN 104734923B
- Authority
- CN
- China
- Prior art keywords
- application task
- service server
- server
- service
- message server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Hardware Redundancy (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种应用任务的执行控制方法和系统、消息服务器,其中方法包括:通过消息服务器接收业务服务器集群中至少二个业务服务器发送的至少二份对应相同应用任务的注册请求,根据接收到的注册请求对相应业务服务器进行注册;所述消息服务器接收所述业务服务器集群中至少二个业务服务器发送的对应同一应用任务的多个启动请求,选择接受其中一启动请求并控制选中的启动请求对应的业务服务器执行所述应用任务;保证应用任务只在一个业务服务器上执行,系统架构简单且可靠性高。
Description
技术领域
本发明涉及业务系统领域,尤其涉及一种应用任务的执行控制方法和系统、消息服务器。
背景技术
企业中的业务系统都会部署在同一个集群环境下,有些业务系统涉及到一些后台的应用任务的执行,应用任务的执行是通过开源quartz来实现的,如果不加任何限制,导致达到任务指定的执行时间点时集群中的多台服务器都运行任务,使得该任务重复执行多次;如果为了避免同一任务被重复执行,可将集群中的某一台服务器上单独部署任务,但单独部署任务可能导致在开发过程中要维护两份程序代码或者在发布时修改配置项来完成,增加系统发布的复杂性。
发明内容
在下文中给出关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
一方面,本发明提供一种应用任务的执行控制方法,包括:
通过消息服务器接收同一业务服务器集群中至少二个业务服务器发送的至少二份对应相同应用任务的注册请求,根据接收到的注册请求对相应业务服务器进行注册;
所述消息服务器接收所述同一业务服务器集群中至少二个业务服务器发送的对应同一应用任务的多个启动请求,选择接受其中一启动请求并控制选中的启动请求对应的业务服务器执行所述应用任务。
另一方面,本发明还提供一种消息服务器,包括;
注册模块,用于接收同一业务服务器集群中至少二个业务服务器发送的至少二份对应相同应用任务的注册请求,根据接收到的注册请求对相应业务服务器进行注册;
启动控制模块,用于接收所述同一业务服务器集群中至少二个业务服务器发送的对应同一应用任务的多个启动请求,选择接受其中一启动请求并控制选中的启动请求对应的业务服务器执行所述应用任务。
本发明还提供一种应用任务的执行控制系统,包括:
上述的消息服务器、以及由多个业务服务器组成、且分别与所述消息服务器通信连接的业务服务器集群;
所述消息服务器用于接收所述业务服务器集群中至少二个业务服务器发送的至少二份对应相同应用任务的注册请求,根据接收到的注册请求对相应业务服务器进行注册;接收所述业务服务器集群发送的对应同一应用任务的多个启动请求,选择接受其中一启动请求并控制选中的启动请求对应的业务服务器执行所述应用任务。
本发明提供的应用任务的执行控制方法和系统、消息服务器,可保证应用任务只在一个业务服务器上执行,系统架构简单且可靠性高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的应用任务的执行控制方法一种实施例的流程图。
图2为本发明提供的应用任务的执行控制方法一种应用场景的示意图。
图3为本发明提供的消息服务器一种实施例的结构示意图。
图4为本发明提供的应用任务的执行控制系统一种实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。在本发明的一个附图或一种实施方式中描述的元素和特征可以与一个或更多个其它附图或实施方式中示出的元素和特征相结合。应当注意,为了清楚的目的,附图和说明中省略了与本发明无关的、本领域普通技术人员已知的部件和处理的表示和描述。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
参考图1,本实施例提供一种应用任务的执行控制方法,包括:
步骤S101,通过消息服务器接收同一业务服务器集群中至少二个业务服务器发送的至少二份对应相同应用任务的注册请求,根据接收到的注册请求对相应业务服务器进行注册;
步骤S102,所述消息服务器接收所述同一业务服务器集群中至少二个业务服务器发送的对应同一应用任务的多个启动请求,选择接受其中一启动请求并控制选中的启动请求对应的业务服务器执行所述应用任务。
消息服务器与业务服务器集群通信连接,业务服务器集群为一个集群环境,包括多个业务服务器,业务系统部署在该集群环境下。
应用任务建立时业务服务器集群的多个业务服务器分别创建应用任务的注册请求,并分别向消息服务器发送注册请求以进行注册,当部署在对该业务服务器集群下的应用任务需要执行时,多个业务服务器分别向消息服务器发送所述应用任务的启动请求,消息服务器只选择接受其中一个启动请求,并控制相应的业务服务器执行该应用任务,由此保证应用任务只在一个业务服务器上执行。
应用任务的注册请求由业务服务器集群的多个不同的业务服务器创建,或者,由同一业务服务器创建多个相同应用任务的注册请求,即可以在同一个业务服务器上将一个应用任务部署多份。
具体地,每个业务服务器创建所述应用任务的注册请求时,为相应的应用任务分配唯一的标识信息,标识信息包括业务服务器的节点信息以及应用任务执行的时间信息。
Quartz提供了以消息服务器的方式来协调应用任务的调度,从一定程度上解决了集群下多点运行的问题,但是如果在同一个业务服务器上将同一个任务部署多份,则默认的消息服务器无法控制此类任务,因为消息服务器以应用任务所在节点的业务服务器作为名称;如果多个不同的应用任务在同一个业务服务器,则会被认为是一个应用任务被执行了多次,因此,本实施例提供的应用任务的执行控制方法中,为相应的应用任务分配唯一的标识信息,包括:
获取业务服务器的节点名称、所述应用任务的执行时间以及随机字符串,随机字符串以UUID的方式生成;
对节点名称、执行时间以及随机字符串取hash值,即通过散列算法进行计算,得出的整形数字即为标识信息。
标识信息以#hostname#timestamp#随机字符串.hash的方式来唯一标识同一个业务服务器上的一个应用任务,其中随机字符串以通用唯一识别码(UUID,UniversallyUnique Identifier)方式生成,对#hostname#timestamp#随机字符串通过hash(散列)算法,可生成固定长度的整形数字。
当要使用Quartz进行应用任务调度时,采用上述的#hostname#timestamp#随机字符串.hash覆盖默认的配置。
注册时,各个业务服务器分别将注册请求发送至消息服务器,该注册请求包括相应的标识信息;当到相应的应用任务执行时刻,各个业务服务器分别同时向消息服务器发送启动请求;消息服务器根据投票策略,随机选择接受其中一启动请求并控制相应的业务服务器执行该应用任务,保证该应用任务只在唯一一个业务服务器上执行。
作为一种可选的实施方式,消息服务器包括热备份的主消息服务器和从消息服务器,当业务服务器集群无法连接主消息服务器时,自动切换连接到从消息服务器。
正常情况下主消息服务器接收业务服务器集群发送的应用任务的注册请求和启动请求,当业务服务器集群无法连接主消息服务器时,自动切换连接到从消息服务器,从消息服务器负责接收业务服务器集群发送的应用任务的注册请求和启动请求,主消息服务器和从消息服务器上的数据实时一致,依靠自身提供的复制机制实现。
作为一种可选的实施方式,当主消息服务器从不可用状态恢复至可用状态时,业务服务器集群自动切换连接至主消息服务器。
通过热备份的主消息服务器和从消息服务器,能够有效提高消息服务器的负载和容错能力。
参考图2,图2为本实施例提供的应用任务的执行控制方法一种应用场景的示意图,消息服务器还可对应用任务的调度情况进行记录和存储,并发送至目标地址,维护人员可以直观的看到各个应用任务的明细。
本实施例提供的应用任务的执行控制方法,可保证应用任务只在一个业务服务器上执行,系统容错能力和负载能力较高,可靠性强且结构简单。
实施例二
参考图3,本实施例提供一种消息服务器,包括:
注册模块101,用于接收同一业务服务器集103群中至少二个业务服务器发送的至少二份对应相同应用任务的注册请求,根据接收到的注册请求对相应业务服务器进行注册;
启动控制模块102,用于接收所述同一业务服务器集群103中至少二个业务服务器发送的对应同一应用任务的多个启动请求,选择接受其中一启动请求并控制选中的启动请求对应的业务服务器执行所述应用任务。
作为一种可选的实施方式,启动控制模块102还用于接收同一应用任务的多个启动请求,根据投票策略选择接受其中一启动请求并控制相应的业务服务器执行所述应用任务。
注册时,业务服务器集群103中的各个业务服务器分别将注册请求发送至注册模块101,该注册请求包括相应的标识信息;当到相应的应用任务执行时刻,各个业务服务器分别同时向启动控制模块102发送启动请求;启动控制模块102根据投票策略,随机选择接受其中一启动请求并控制相应的业务服务器执行该应用任务,保证该应用任务只在唯一一个业务服务器上执行。
本实施例提供的消息服务器,可控制应用任务只在与之相连的一个业务服务器上执行,可靠性强且结构简单。
实施例三
参考图4,本实施例提供一种应用任务的执行控制系统,包括:
消息服务器201、以及由多个业务服务器203组成、且分别与消息服务器201通信连接的业务服务器集群202;
消息服务器201用于接收业务服务器集群202中至少二个业务服务器203发送的至少二份对应相同应用任务的注册请求,根据接收到的注册请求对相应业务服务器进行注册;接收业务服务器集群发送的对应同一应用任务的多个启动请求,选择接受其中一启动请求并控制选中的启动请求对应的业务服务器执行应用任务。
参考图4,在一个控制系统中可包括多个业务服务器集群202。
应用任务建立时业务服务器集群202中的多个业务服务器203分别创建注册请求,向消息服务器201进行注册,当应用任务需要执行时,多个业务服务器203分别向消息服务器201发送启动请求,消息服务器201只选择接受其中一个启动请求,并控制相应的业务服务器203执行该应用任务,保证应用任务只在一个业务服务器上执行。
应用任务的注册请求由业务服务器集群202的多个不同的业务服务器创建,或者,由同一业务服务器203创建多个相同应用任务的注册请求,即可以在同一个业务服务器上将一个应用任务部署多份。
具体地,每个业务服务器203创建所述应用任务的注册请求时,为相应的应用任务分配唯一的标识信息,标识信息包括业务服务器203的节点信息以及应用任务执行的时间信息。
Quartz提供了以消息服务器的方式来协调应用任务的调度,从一定程度上解决了集群下多点运行的问题,但是如果在同一个业务服务器上将同一个任务部署多份,则默认的消息服务器无法控制此类任务,因为消息服务器以应用任务所在节点的业务服务器作为名称;如果多个不同的应用任务在同一个业务服务器,则会被认为是一个应用任务被执行了多次,因此,本实施例提供的应用任务的执行控制方法中,为相应的应用任务分配唯一的标识信息,包括:
获取业务服务器203的节点名称、应用任务的执行时间以及随机字符串,随机字符串以UUID的方式生成;
对节点名称、执行时间以及随机字符串取hash值,得出的整形数字即为标识信息。
标识信息以#hostname#timestamp#随机字符串.hash的方式来唯一标识同一个业务服务器上的一个应用任务,其中随机字符串以UUID(Universally Unique Identifier)方式生成,对#hostname#timestamp#随机字符串通过hash(散列)算法,可生成固定长度的整形数字。
当要使用Quartz进行应用任务调度时,采用上述的#hostname#timestamp#随机字符串.hash覆盖默认的配置。
注册时,各个业务服务器203将注册请求发送至消息服务器201,该注册请求包括相应的标识信息;当到相应的应用任务执行时刻,各个业务服务器203同时向消息服务器201发送启动请求;消息服务器201随机选择接受其中一启动请求并控制相应的业务服务器203执行该应用任务,保证该应用任务只在唯一一个业务服务器上执行。
消息服务器201包括热备份的主消息服务器204和从消息服务器205,当业务服务器集群202无法连接主消息服务器204时,自动切换连接到从消息服务器205。
正常情况下主消息服务器204接收业务服务器集群202发送的应用任务的注册请求和启动请求,当业务服务器集群202无法连接主消息服务器204时,自动切换连接到从消息服务器205,从消息服务器205负责接收业务服务器集群202发送的应用任务的注册请求和启动请求,主消息服务器204和从消息服务器205上的数据实时一致,依靠自身提供的复制机制实现。
作为一种可选的实施方式,当主消息服务器从不可用状态恢复至可用状态时,业务服务器集群自动切换连接至主消息服务器。
通过热备份的主消息服务器和从消息服务器,能够有效提高消息服务器的负载和容错能力。
本实施例提供的应用任务的执行控制系统,可保证应用任务只在一个业务服务器上执行,系统容错能力和负载能力较高,可靠性强且结构简单。
在本发明上述各实施例中,实施例的序号仅仅便于描述,不代表实施例的优劣。对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的装置和方法等实施例中,显然,各部件或各步骤是可以分解、组合和/或分解后重新组合的。这些分解和/或重新组合应视为本发明的等效方案。同时,在上面对本发明具体实施例的描述中,针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
最后应说明的是:虽然以上已经详细说明了本发明及其优点,但是应当理解在不超出由所附的权利要求所限定的本发明的精神和范围的情况下可以进行各种改变、替代和变换。而且,本发明的范围不仅限于说明书所描述的过程、设备、手段、方法和步骤的具体实施例。本领域内的普通技术人员从本发明的公开内容将容易理解,根据本发明可以使用执行与在此所述的相应实施例基本相同的功能或者获得与其基本相同的结果的、现有和将来要被开发的过程、设备、手段、方法或者步骤。因此,所附的权利要求旨在在它们的范围内包括这样的过程、设备、手段、方法或者步骤。
Claims (2)
1.一种应用任务的执行控制方法,其特征在于,包括:
通过消息服务器接收同一业务服务器集群中至少二个业务服务器发送的至少二份对应相同应用任务的注册请求,根据接收到的注册请求对相应业务服务器进行注册;
所述消息服务器接收所述同一业务服务器集群中至少二个业务服务器发送的对应同一应用任务的多个启动请求,选择接受其中一启动请求并控制选中的启动请求对应的业务服务器执行所述应用任务;
所述应用任务的注册请求由业务服务器集群中的多个不同的业务服务器创建,或者,由同一业务服务器创建多个相同应用任务的注册请求;
每个所述业务服务器创建所述应用任务的注册请求时,为相应的应用任务分配唯一的标识信息,所述标识信息包括所述业务服务器的节点信息以及所述应用任务执行的时间信息;
所述每个业务服务器创建所述应用任务的注册请求时,为相应的应用任务分配唯一的标识信息,包括:
获取业务服务器的节点名称、所述应用任务的执行时间以及随机字符串,所述随机字符串以通用唯一识别码的方式生成;
所述节点名称、执行时间以及随机字符串通过散列算法得出的整形数字即为所述标识信息。
2.根据权利要求1所述的应用任务的执行控制方法,其特征在于,所述消息服务器包括热备份的主消息服务器和从消息服务器,当所述业务服务器集群无法连接所述主消息服务器时,自动切换连接到所述从消息服务器;当所述消息服务器恢复至可用时,再自动切换连接到所述主消息服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310700663.XA CN104734923B (zh) | 2013-12-18 | 2013-12-18 | 应用任务的执行控制方法和系统、消息服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310700663.XA CN104734923B (zh) | 2013-12-18 | 2013-12-18 | 应用任务的执行控制方法和系统、消息服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104734923A CN104734923A (zh) | 2015-06-24 |
CN104734923B true CN104734923B (zh) | 2018-12-28 |
Family
ID=53458377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310700663.XA Expired - Fee Related CN104734923B (zh) | 2013-12-18 | 2013-12-18 | 应用任务的执行控制方法和系统、消息服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104734923B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100280B (zh) * | 2015-08-31 | 2019-09-13 | 广州酷狗计算机科技有限公司 | 任务分配方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101236513A (zh) * | 2007-01-30 | 2008-08-06 | 阿里巴巴公司 | 一种分布式任务系统和分布式任务管理方法 |
CN101464884A (zh) * | 2008-12-31 | 2009-06-24 | 阿里巴巴集团控股有限公司 | 一种分布式任务系统及应用该系统的数据处理方法 |
CN102880473A (zh) * | 2012-09-28 | 2013-01-16 | 五八有限公司 | 基于quartz框架的任务执行方法及装置 |
CN102902587A (zh) * | 2011-07-28 | 2013-01-30 | 中国移动通信集团四川有限公司 | 分布式任务调度方法、系统和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1939741A3 (en) * | 2006-11-17 | 2009-10-07 | Fujitsu Ltd. | Resource management apparatus and radio network controller |
-
2013
- 2013-12-18 CN CN201310700663.XA patent/CN104734923B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101236513A (zh) * | 2007-01-30 | 2008-08-06 | 阿里巴巴公司 | 一种分布式任务系统和分布式任务管理方法 |
CN101464884A (zh) * | 2008-12-31 | 2009-06-24 | 阿里巴巴集团控股有限公司 | 一种分布式任务系统及应用该系统的数据处理方法 |
CN102902587A (zh) * | 2011-07-28 | 2013-01-30 | 中国移动通信集团四川有限公司 | 分布式任务调度方法、系统和装置 |
CN102880473A (zh) * | 2012-09-28 | 2013-01-16 | 五八有限公司 | 基于quartz框架的任务执行方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104734923A (zh) | 2015-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10516577B2 (en) | Graceful scaling in software driven networks | |
US10002141B2 (en) | Distributed database in software driven networks | |
CN105407117B (zh) | 分布式备份数据的方法、装置和系统 | |
CN110138876B (zh) | 任务部署方法、装置、设备及平台 | |
US9152441B2 (en) | Systems and methods involving virtual machine host isolation over a network via a federated downstream cluster | |
WO2019210580A1 (zh) | 访问请求处理方法、装置、计算机设备和存储介质 | |
CN108696581A (zh) | 分布式信息的缓存方法、装置、计算机设备以及存储介质 | |
EP2901308A2 (en) | Load distribution in data networks | |
CN105979007A (zh) | 加速资源处理方法、装置及网络功能虚拟化系统 | |
CN110442610A (zh) | 负载均衡的方法、装置、计算设备以及介质 | |
CN110445697B (zh) | 视频大数据云平台设备接入服务方法 | |
CN109634735A (zh) | 一种调度Pod的方法及装置 | |
CN110231965A (zh) | 一种云端设备、应用程序处理方法及电子设备 | |
CN112351106B (zh) | 一种含事件网格的服务网格平台及其通信方法 | |
CN104734923B (zh) | 应用任务的执行控制方法和系统、消息服务器 | |
CN116483543A (zh) | 一种任务处理方法、装置、设备及存储介质 | |
CN102868594B (zh) | 一种消息处理方法和装置 | |
CN112738153B (zh) | 业务系统中的网关选择方法、系统、装置、服务器及介质 | |
CN116016209A (zh) | 一种网络自动化方法及装置 | |
CN112910697B (zh) | 一种故障处理方法及装置 | |
CN114610545A (zh) | 减少私有云计算的单点故障的方法、系统、设备及介质 | |
CN101308463B (zh) | 网格环境内面向代理编程计算任务的自适应方法 | |
CN110266564A (zh) | 探测装置及其执行的方法、以及控制装置及其执行的方法 | |
JP2004159230A (ja) | ネットワークにおけるデータ配信方法及びデータ配信システム | |
CN109257438A (zh) | 一种多元异构存储方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181228 Termination date: 20191218 |