太阳城集团

  • / 12
  • 下载费用:30 金币  

一种任务调度处理方法及系统.pdf

摘要
申请专利号:

太阳城集团CN201310738706.3

申请日:

2013.12.26

公开号:

CN103679392A

公开日:

2014.03.26

当前法律状态:

授权

有效性:

有权

法律详情: 授权|||著录事项变更IPC(主分类):G06Q 10/06变更事项:申请人变更前:拉卡拉支付有限公司变更后:拉卡拉支付股份有限公司变更事项:地址变更前:100080 北京市海淀区丹棱街6号1幢7层808变更后:100080 北京市海淀区丹棱街6号1幢6层706|||实质审查的生效IPC(主分类):G06Q 10/06申请日:20131226|||公开
IPC分类号: G06Q10/06(2012.01)I; G06F9/48 主分类号: G06Q10/06
申请人: 拉卡拉支付有限公司
发明人: 周雪松; 项毅
地址: 100080 北京市海淀区丹棱街6号1幢7层808
优先权:
专利代理机构: 北京新知远方知识产权代理事务所(普通合伙) 11397 代理人: 马军芳
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201310738706.3

授权太阳城集团号:

|||||||||

法律状态太阳城集团日:

太阳城集团2018.01.09|||2017.02.22|||2014.04.23|||2014.03.26

法律状态类型:

授权|||著录事项变更|||实质审查的生效|||公开

摘要

本发明提供了一种任务调度处理方法,包括:从消息中间件接收申请任务消息,所述申请任务消息包括主题名称;当判断所述申请任务消息满足预置的过滤条件时,在数据库中查询该任务的执行状态,如果当前没有应用程序正在处理该任务,则指定目标应用程序执行本次任务,发布以所述主题名称为主题的任务执行消息到所述消息中间件。本发明还提供了一种任务调度处理系统。采用本发明的技术方案可避免在集群系统并发操作时产生数据重复的问题。

权利要求书

权利要求书
1.  一种任务调度处理方法,其特征在于,包括以下步骤:
从消息中间件接收申请任务消息,所述申请任务消息包括主题名称;
当判断所述申请任务消息满足预置的过滤条件时,在数据库中查询所述任务的执行状态;如果当前没有应用程序正在执行所述任务,则指定目标应用程序执行所述任务,发布以所述主题名称为主题的任务执行消息到所述消息中间件。

2.  如权利要求1所述的任务调度处理方法,其特征在于,所述目标应用程序从所述消息中间件接收所述任务执行消息,当满足预置的过滤条件时执行所述任务,并在执行完成后向所述数据库记录执行结果。

3.  如权利要求1所述的任务调度处理方法,其特征在于,所述数据库中包括任务规则,所述任务是通过对所述数据库中的任务规则解析得到,在系统初始化阶段发布任务消息到所述消息中间件上。

4.  如权利要求1所述的任务调度处理方法,其特征在于,所述在数据库中查询所述任务的执行状态,如果当前存在应用程序正在执行所述任务,则等待所述应用程序执行结束。

5.  如权利要求1所述的任务调度处理方法,其特征在于,所述目标应用程序为预先设置或者随机指定。

6.  一种任务调度处理方法,其特征在于,包括以下步骤:
对数据库中的定时任务的任务规则进行解析,得到所述定时任务,所述定时任务包括主题名称、执行太阳城集团和执行对象;
当到达所述执行太阳城集团时,从所述执行对象中指定应用程序作为目标应用程序,向消息中间件发布任务执行消息,所述任务执行消息包括所述主题名称和所述目标应用程序。

7.  如权利要求6所述的任务调度处理方法,其特征在于,所述目标应用程序从所述消息中间件接收所述任务执行消息,当满足预置的过滤条件时执行所 述任务,并在执行完成后向数据库记录执行结果。

8.  一种任务调度处理系统,其特征在于,包括:
消息接收器,用于从消息中间件接收申请任务消息,所述申请任务消息包括主题名称;
消息过滤器,用于根据预置的过滤条件过滤所述申请任务消息;
运算器,用于当所述申请任务消息通过所述消息过滤器时,在数据库中查询该任务的执行状态,如果当前没有应用程序正在执行所述任务,则指定目标应用程序执行所述任务;
消息发布器,用于发布以所述主题名称为主题的任务执行消息到所述消息中间件上。

9.  如权利要求8所述的任务调度处理系统,其特征在于,所述目标应用程序的消息接收器用于接收所述任务执行消息,当所述任务执行消息通过所述目标应用程序的消息过滤器后所述目标应用程序执行所述任务,并在执行完成后向所述数据库记录执行结果。

10.  如权利要求8所述的任务调度处理系统,其特征在于,还包括:规则解析器,用于对所述数据库中的任务规则进行解析得到所述任务;所述消息发布器还用于在系统初始化阶段将任务消息发布到所述消息中间件上。

11.  如权利要求8所述的任务调度处理系统,其特征在于,所述运算器还用于如果当前存在应用程序正在执行所述任务,则等待所述应用程序执行结束。

12.  如权利要求8所述的任务调度处理系统,其特征在于,所述运算器具体用于指定预先设置的目标应用程序执行所述任务,或者随机指定应用程序作为目标应用程序执行所述任务。

13.  一种任务调度处理系统,其特征在于,包括:
规则解析器,用于对数据库中的定时任务的任务规则进行解析,得到所述定时任务,所述定时任务包括主题名称、执行太阳城集团和执行对象;
运算器,用于当到达所述执行太阳城集团时,从所述执行对象中指定应用程序 作为目标应用程序;
消息发布器,用于向消息中间件发布任务执行消息,所述任务执行消息包括所述主题名称以及所述目标应用程序。

14.  如权利要求13所述的任务调度处理系统,其特征在于,所述目标应用程序的消息接收器用于接收所述任务执行消息,当所述任务执行消息通过所述目标应用程序的消息过滤器后所述目标应用程序执行所述任务,并在执行完成后向数据库记录执行结果。

说明书

说明书一种任务调度处理方法及系统
技术领域
本发明涉及集群业务处理技术领域,尤其涉及一种任务调度处理方法及系统。
背景技术
随着企业级管理系统用户数量的不断增大,为满足管理系统的并发量,一般各个公司会采用硬件或软件集群的方式来部署系统。然而集群并不是线程安全的,集群系统并发时会产生诸如系统定时任务处理、关键数据重复等问题。虽然目前部分问题可通过各种“锁”的机制解决,但这种机制并不能完全解决上述问题。
对于收单业务系统来说,收单业务中包含各种各样的单据号太阳城集团,比如交易流水号、商户号、终端号以及其他各类流程数据单号。这些单号都有严格的编码规则,并且在各自的领域中是唯一标识,一旦出现重复情况将对收单业务管理系统产生巨大的影响。
发明内容
本发明为解决上述问题,提出了一种任务调度处理方法及系统,通过将传统的任务执行过程拆分成两部分,解决系统集群部署产生的并发问题。
在一个方面,本发明提供了一种任务调度处理方法,包括以下步骤:
从消息中间件接收申请任务消息,申请任务消息包括主题名称;
当判断申请任务消息满足预置的过滤条件时,在数据库中查询该任务的执 行状态;如果当前没有应用程序正在执行该任务,则指定目标应用程序执行该任务,发布以该主题名称为主题的任务执行消息到消息中间件。
在一个方面,本发明还提供了一种任务调度处理方法,包括以下步骤:
对数据库中的定时任务的任务规则进行解析,得到该定时任务,该定时任务包括主题名称、执行太阳城集团和执行对象;
当到达该执行太阳城集团时,从执行对象中指定应用程序作为目标应用程序,向消息中间件发布任务执行消息,该任务执行消息包括主题名称和目标应用程序。
在另一个方面,本发明提供了一种任务调度处理系统,包括:
消息接收器,用于从消息中间件接收申请任务消息,申请任务消息包括主题名称;
消息过滤器,用于根据预置的过滤条件过滤申请任务消息;
运算器,用于当申请任务消息通过消息过滤器时,在数据库中查询该任务的执行状态,如果当前没有应用程序正在执行该任务,则指定目标应用程序执行该任务;
消息发布器,用于发布以该主题名称为主题的任务执行消息到消息中间件上。
在另一方面,本发明还提供了一种任务调度处理系统,包括:
规则解析器,用于对数据库中的定时任务的任务规则进行解析,得到定时任务,该定时任务包括主题名称、执行太阳城集团和执行对象;
运算器,用于当到达执行太阳城集团时,从执行对象中指定应用程序作为目标应用程序;
消息发布器,用于向消息中间件发布任务执行消息,该任务执行消息包括所述主题名称以及所述目标应用程序。
本发明采用JMS机制的发布者/订阅者模式,通过将各个单号任务生成与单号任务实际执行两个步骤分开处理,经任务调度以后再确定实际执行任务的 应用程序。采用本发明的技术方案可以避免在集群系统并发操作时产生数据重复的问题。
附图说明
下面将参照附图描述本发明的具体实施例,其中:
图1示出了本发明实施例的任务调度处理方法的方法流程图;
图2示出了本发明另一实施例的任务调度处理方法的方法流程图;
图3示出了本发明实施例的任务调度处理系统的结构示意图;
图4示出了本发明另一实施例的任务调度处理系统的结构示意图;
图5示出了传统商户号生成任务的处理流程;
图6示出了本发明实施例商户号生成任务的处理流程。
具体实施方式
为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。
为了解决系统集群部署时产生的并发问题,本发明实施例提出了一种任务分配调度处理方法及系统,是基于Java消息服务(JMS,Java Message Service)机制进行任务调度的处理。
其中,Java消息服务(JMS,Java Message Service)是一个Java平台中太阳城集团面向消息中间件的应用程序编程接口(API,Application Programming Interface),它使得分布式系统的太阳城集团通信松散连接,发送太阳城集团的客户端只需要负责发送太阳城集团,接收太阳城集团的客户端只需要接收太阳城集团,两个客户端之间没有必要同时可用。
JMS支持两种消息模式:一种是点对点模式,另一种是发布者/订阅者模式(publish/subscriber Messaging)。本发明实施例是基于发布者/订阅者模式提 出的技术方案。发布者/订阅者模式用于多接收客户端方式,可能存在多个接收客户端并且接收客户端与发送客户端存在太阳城集团上的依赖,一个接收端只能接收自身创建以后发送客户端发送的太阳城集团。
由于在实际应用中,任务发起可以由各个应用程序向任务调度处理系统发起,也可以由任务调度处理系统自行发起,由任务调度处理系统自行发起的一般为定时任务,解析得到该任务后到达预定太阳城集团自行发起任务。因此,针对不同的任务发起者本发明提出了一种任务调度处理方法及系统。
对于各应用程序向任务调度处理系统申请任务的情况,本发明实施例提供了一种任务调度处理方法,图1示出了该任务调度处理方法的流程图,具体包括以下步骤:
S101、从消息中间件接收申请任务消息,该申请任务消息中包括有主题名称。
该任务是在系统初始化阶段对数据库中的任务规则进行解析得到的,解析后得到的任务可能包括:主题名称、消息方式、执行对象、执行太阳城集团等等。该数据库中包括有各个任务的任务规则以及各任务的执行状态,在任务规则方面定义了各个任务的指标参数太阳城集团,包括执行周期、实行太阳城集团和作业目标等等。
在解析得到该任务后,向消息中间件注册这个任务消息。其他应用程序可以从消息中间件上订阅该任务消息,并将自身的唯一标识名称一同发布到消息中间件上。本发明实施例接收订阅任务的消息,从而在初始化阶段任务调度处理系统与各应用程序的任务连接关系,也即哪个应用程序订阅了哪个任务。
当应用程序向消息中间件发起申请该任务消息时,消息中间件对该申请任务消息进行广播,本发明实施例从消息中间件接收该申请任务消息。
S102、根据预先设置的过滤条件判断该申请任务消息是否满足过滤条件,如果不满足则终止;如果满足则执行下一步骤。
本发明实施例过滤原理是根据Java的反射机制来判断传入的参数对象,参数对应的是字符串String类型,表达式为正则表达式。本发明实施例还可提供 一个MessageSelector接口,用于满足用户复杂的需要编程的过滤条件。
本发明实施例根据预设的过滤条件,判断该申请任务消息是否为本应用程序关注的内容,如果不是则终止;如果是本应用程序关注的内容则进行下一步骤。
S103、在数据库中查询该任务的执行状态,判断是否有应用程序正在处理该任务,也即该任务的任务状态为执行中。如果有则等待上一个任务处理结束,如果没有,则执行下一步骤。
S104、指定一个目标应用程序去执行本次任务,发起一个以该任务主题名称为主题的任务执行消息,下发任务执行消息(也可称为作业指令)到消息中间件上。该目标应用程序可以是预先设置的,也可以是随机指定该任务的执行对象的其中一个应用程序,本发明对此不作限制。
目标应用程序接收到该任务执行消息后,判断是否满足自身的过滤条件,如果不满足则说明不是自己关注的消息,直接丢弃该消息;如果满足则执行该任务,执行完成后向数据库中记录执行结果。本发明实施例中是通过调用数据库接口从而实现向该数据库中记录执行结果,也即目标应用程序向任务调度处理系统通过数据库接口发送一条指令,由任务调度处理系统在数据库中记录执行结果。
基于同一发明构思,对于任务调度处理系统自行发起任务的情况,本发明实施例提供了一种任务调度处理方法,如图2所示,具体包括以下步骤:
S201、对数据库中的定时任务的任务规则进行解析,得到该定时任务的具体内容,该定时任务包括有任务的主题名称、任务类型、执行太阳城集团以及执行对象(或称执行目标)等太阳城集团。
S202、当到达该任务的执行太阳城集团时,从该任务的执行对象中指定一个应用程序作为目标应用程序,向消息中间件发布任务执行消息。该任务执行消息中包括该任务的主题名称以及目标应用程序等太阳城集团。
S203、消息中间件对该任务执行消息进行广播,目标应用程序的消息接收 器接收到该任务执行消息后,判断该任务执行消息是否满足自身预置的过滤条件,当满足过滤条件时执行该任务,执行完成后向数据库记录执行结果;当不满足过滤条件时则丢弃该任务执行消息。
具体举例如下:
假设在数据库中有一条主题名称为“终端文件同步”的任务规则。通过规则解析器对该任务规则进行解析,得出这个任务是每天(任务类型:固定频率)、凌晨1:10(cron表达式:0101**?)、开始执行前一天(java的jexlFuntion类方法为Date:addDays(-1))的增量终端数据同步。调度任务的执行目标是一组“bmcp-app”集群应用程序中随机一个(也可以指定具体执行目标),包含了任务失败重做10次的错误处理机制。这样,当到达预定太阳城集团时,就会通过消息发布器发起一个主题名称为“TRIGGER_SCHEDULE_EVENT_CODE”、内容为“POSP_TERM_FILE_EXPORT”的消息,并且随机指定“bmcp-app”集群应用中某一应用程序去执行这个任务。
对于系统的定时任务,现有技术中所有应用程序都申请数据同步任务时会产生数据操作上的冲突。而采用本发明实施例所提供的任务调度处理方法,由任务调度处理系统统一生成任务,定时发起任务指定某一应用程序去执行任务,可以解决现有技术的数据处理冲突。
除此之外,任务调度处理系统生成任务时还设置了错误处理机制,当一个目标应用程序执行任务失败时,任务调度处理系统根据错误处理机制指定另一目标应用程序再次执行该任务,确保任务的正常执行。
基于同一发明构思,本发明实施例还提供了一种任务调度处理系统。图3示出了该任务分配调度处理系统的结构示意图,具体包括:
消息发布器,用于向消息中间件(可以是ActiveMQ)发布主题名称以及消息。消息发布器定义了connectionFactory和topicName两个参数,connectionFactory是JMS的连接工厂,配置了消息中间件所在的服务器地址端口等太阳城集团,topicName是消息的主题名称,向消息中间件申明要接收哪些主题 名称的消息。
其中,ActiveMQ是Apache出品的开源消息总线,它是一个完全支持JMS和J2EE规范的JMS Provider实现。
消息接收器,用于从消息中间件接收消息。
消息过滤器,用于过滤各个应用程序需要接收的消息。消息过滤器从应用程序上下文容器context中获取消息,根据预置的过滤条件判断是否为本应用程序关注的消息,如果不是则终止;否则将消息传递给具体的任务调度程序。
运算器,作为具体的任务调度程序,用于接收过滤器传送过来的消息,根据数据库匹配具体的任务,制定作业调度执行计划(包括执行太阳城集团、执行目标和执行内容等),指定目标应用程序执行该任务,发布以该任务的主题名称为主题的任务执行消息到消息中间件上。
目标应用程序的消息接收器接收到该任务执行消息以后,首先由消息过滤器对该任务执行消息进行判断,如果满足该目标应用程序自身的过滤条件,则执行该任务,执行完成后向数据库中记录执行结果;如果不满足自身过滤条件则直接丢弃该任务执行消息。目标应用程序可以调用任务调度处理系统的运算器来执行该任务,也可以利用自身的业务执行器执行该业务,本发明对此不作限制。
本发明实施例所提供的任务调度处理系统还包括:规则解析器,用于对预置数据库中的任务规则进行解析,为消息过滤器提供过滤条件,而且还定义了各个任务的指标参数太阳城集团,比如执行周期、实行太阳城集团、作业目标等等。规则解析器是通过数据库将需要执行的任务规则加载到缓存中,并根据实际的消息操作来刷新缓存内容。其中,本发明实施例的数据库中存储任务规则以及日常消息调度运行状态。
基于同一发明构思,本发明还提供了一种任务调度处理系统,如图4所示,包括:
规则解析器,用于对数据库中的定时任务的任务规则进行解析,得到该定 时任务,该定时任务包括有主题名称、执行太阳城集团以及执行对象(或称执行目标)等太阳城集团。
运算器,用于当到达该任务的执行太阳城集团时,从执行对象中指定应用程序作为目标应用程序。
消息发布器,用于向消息中间件发布任务执行消息,任务执行消息包括该任务的主题名称以及目标应用程序。
消息中间件对该任务执行消息进行广播,目标应用程序的消息接收器用于接收该任务执行消息,当任务执行消息通过目标应用程序的消息过滤器后目标应用程序执行该任务,并在执行完成后向数据库记录执行结果。
本发明所提供的任务调度处理方法及系统,利用JMS机制的发布者/订阅者模式,避免了在集群系统并发操作时产生的数据重复问题。
为了更好的说明本发明实施例的工作原理,下面以收单业务中的商户号分配为例进行说明:
传统单应用程序模式下商户号生成流程如图5所示,可以看出,单应用程序情况下商户号依据预设规则顺序增长。然而,如果存在一个应用程序正在处理申请商户号并记录结果到数据库,而另一个应用程序也在处理申请商户号并记录结果到数据库时,就可能出现不同应用程序获得的商户号重复的问题。
而采用本发明实施例所提供的技术方案,将申请商户号和计算商户号两个原本上下连接的步骤进行了拆分,图6示出了本发明实施例通过任务调度实现商户号生成处理的流程(在此仅以应用程序向任务调度处理系统申请任务的过程进行举例说明)。
首先,在系统初始化阶段,任务调度处理系统对数据库中的“商户号生成”任务的规则进行解析,解析内容如下:
主题名称:商户号生成
消息方式:发布者/订阅者
执行对象:APP1、APP2…APPn
执行太阳城集团:立即执行
异常重复次数:3次

解析完成后发布一个消息,向JMS消息中间件注册该任务;其他应用程序订阅该任务,并将自身的唯一标识名称(假设该应用程序为APP1)告知JMS中间件。
由此,在初始化阶段完成任务调度处理系统与各个应用程序的任务连接关系。
当应用程序向JMS消息中间件发送以“商户号生成”为主题名称、“申请商户号生成任务”为内容的申请任务消息时,JMS消息中间件广播该消息。任务调度处理系统接收该申请任务消息并判断是否满足过滤条件,不是自己关注的消息则丢弃;如果是自己关注的消息则进行后续任务调度处理。
查询数据库中“商户号生成”任务的执行状态,如果有APP正在处理商户号生成任务,则等待上一个任务执行结束;如果没有APP正在处理该任务,则发起一个以“商户号生成”为主题名称、以APP2为目标应用程序的消息到JMS消息中间件,也即指定APP2执行这个任务。当然,目标应用程序可以是随机指定的,也可以预先配置,本发明对此不作限制。
JMS消息中间件对该消息进行广播,当APP2接收到该消息后判断是否满足过滤条件,也即判断是否为发送给自己的消息,如果是发送给其他应用程序的消息则不进行任何处理操作,如果是发送给自己的消息则执行该任务,生成商户号以后,调用数据库接口向数据库中记录执行结果。
本发明所提供的任务调度处理方法及系统,采用JMS机制的发布者/订阅者模式,通过将各个单号生成任务的申请与单号实际生成两个步骤分开处理,经任务调度以后再确定实际执行任务的应用程序。采用本发明的技术方案可以避免在集群系统并发操作时产生数据重复的问题。
以上实施例仅用以说明本发明的技术方案,而非对其进行限制。因此,在 不背离本发明的精神及其实质的情况下,本领域技术人员可作出各种改变、替换和变型。很显然,但这些改变、替换和变型都应涵盖于本发明权利要求的保护范围之内。

关 键 词:
一种 任务 调度 处理 方法 系统
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
太阳城集团本文
本文标题:一种任务调度处理方法及系统.pdf
链接地址:http://zh228.com/p-6180653.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');