CN112965814A - 多任务调度方法及系统 - Google Patents
多任务调度方法及系统 Download PDFInfo
- Publication number
- CN112965814A CN112965814A CN202110188321.9A CN202110188321A CN112965814A CN 112965814 A CN112965814 A CN 112965814A CN 202110188321 A CN202110188321 A CN 202110188321A CN 112965814 A CN112965814 A CN 112965814A
- Authority
- CN
- China
- Prior art keywords
- batch
- task
- subtasks
- target
- scheduling
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 238000012545 processing Methods 0.000 claims description 47
- 238000012544 monitoring process Methods 0.000 claims description 20
- 238000003860 storage Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 12
- 230000002159 abnormal effect Effects 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 17
- 238000004891 communication Methods 0.000 description 14
- 238000012806 monitoring device Methods 0.000 description 11
- 230000000007 visual effect Effects 0.000 description 5
- 239000000872 buffer Substances 0.000 description 4
- 238000005520 cutting process Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000008014 freezing Effects 0.000 description 4
- 238000007710 freezing Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了一种多任务调度方法及系统,可用于金融领域或其他领域,该方法包括:接收目标Zookeeper注册中心发送的作业请求;根据预设的多任务调度总表,确定所述作业请求对应的目标任务的批量子任务;执行批量子任务。本申请能够在实现批量任务调度的基础上,降低Zookeeper注册中心压力。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种多任务调度方法及系统。
背景技术
目前行业通用的分布式批量调度框架如xxl-job和Elastic-job框架等,虽然能够实现分布式场景下多个分片的批量协同调度,但其批量任务实例均依赖在分布式批量调度框架中预定义的排程计划生成。
为了支持这类分布式批量调度框架中业务系统的业务场景,通常在Zookeeper注册中心动态生成大量批量任务实例,这类分布式批量调度框架监听Zookeeper注册中心的批量任务实例数据变化的压力会陡然上升,在批量任务实例数据量超过一定量级时,会导致Zookeeper注册中心性能下降甚至崩溃,进而影响分布式批量调度框架生产运行安全。
发明内容
针对现有技术中的问题,本申请提出了一种多任务调度方法及系统,能够在实现批量任务调度的基础上,降低Zookeeper注册中心压力。
为了解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种多任务调度方法,包括:
接收目标Zookeeper注册中心发送的作业请求;
根据预设的多任务调度总表,确定所述作业请求对应的目标任务的批量子任务;
执行批量子任务。
进一步地,所述预设的多任务调度总表,包括:批量配置表、批量任务运行表和并发定义表;
相对应的,所述根据预设的多任务调度总表,确定所述作业请求对应的目标任务的批量子任务,包括:
根据所述批量配置表,确定目标任务的目标任务标识;
根据所述目标任务标识和批量任务运行表,获得所述目标任务的目标并发参数;
根据所述目标任务标识、目标并发参数,以及并发定义表,确定所述目标任务的批量子任务。
进一步地,所述执行批量子任务包括:
若所述目标任务的目标并发参数不为空,则并发执行该目标任务的批量子任务。
进一步地,所述执行批量子任务,还包括:
若目标任务的个数为多个,则根据每个目标任务的目标任务标识和所述批量任务运行表,确定该目标任务的前置任务;
根据各目标任务的前置任务,确定目标任务之间的执行顺序。
进一步地,所述执行批量子任务,还包括:
实时监控批量子任务的运行状态;
若批量子任务运行状态异常,则输出批量子任务的异常预警信息。
进一步地,所述执行批量子任务,还包括:
根据所述批量配置表,确定批量子任务的运行时长上限;
若批量子任务的运行时长超过其对应的运行时长上限,则输出批量子任务的超时预警信息。
进一步地,所述的多任务调度方法,还包括:
接收预警处理请求;
根据所述预警处理请求,处理批量子任务,处理方式包括:忽略、重新执行和结束批量子任务。
第二方面,本申请提供一种多任务调度系统,包括:
接收装置,用于接收目标Zookeeper注册中心发送的作业请求;
确定装置,用于根据预设的多任务调度总表,确定所述作业请求对应的目标任务的批量子任务;
执行装置,用于执行批量子任务。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的多任务调度方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现所述的多任务调度方法。
由上述技术方案可知,本申请提供一种多任务调度方法及系统。其中,该方法包括:接收目标Zookeeper注册中心发送的作业请求;根据预设的多任务调度总表,确定所述作业请求对应的目标任务的批量子任务;执行批量子任务,能够在实现批量任务调度的基础上,降低Zookeeper注册中心压力;具体地,能够实现提升批量调度性能的目的,同时又能够保证分布式批量调度框架Zookeeper注册中心中的批量任务实例数量可控,运行稳定。其优点如下:可适配多套分布式批量调度框架,适配性佳,可移植性较强;支持用户定制化的配置业务并发参数,通用灵活;实现批量任务监控的可视化,具备批量运行异常场景下的应急处理能力。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中多任务调度方法的流程示意图;
图2是本申请另一实施例中多任务调度方法的流程示意图;
图3是本申请实施例中多任务调度系统的结构示意图;
图4是本申请应用实例中多任务调度系统的结构示意图;
图5是本申请应用实例中批量任务定义装置的结构示意图;
图6是本申请应用实例中批量任务运行装置的结构示意图;
图7是本申请应用实例中批量任务监控装置的结构示意图;
图8是本申请应用实例中多任务调度方法的流程示意图;
图9是本申请一种举例中多任务调度方法的逻辑示意图;
图10为本申请实施例的电子设备9600的系统构成示意框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了解决现有技术中的批量调度依赖问题,降低Zookeeper注册中心压力,本申请考虑在现有分布式批量调度框架已有分片任务管理机制的基础上,提供一种多任务调度方法及系统,可以支持多业务要素维度动态生成调度任务,将随机生成批量任务实例这类不可控的业务场景在多任务调度系统本地统一管理,能够在满足业务系统快速升级的同时,兼顾分布式批量调度框架生产运行的稳定性。
基于此,为了在实现批量任务调度的基础上,降低Zookeeper注册中心压力,本申请实施例提供一种多任务调度系统,该系统可以是一服务器或客户端设备,所述客户端设备可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备和智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表和智能手环等。
在实际应用中,进行多任务调度的部分可以在如上述内容所述的服务器侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
所述服务器与所述客户端设备之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
需要说明的是,本申请公开的多任务调度方法及系统可用于金融技术领域,也可用于除金融技术领域之外的任意领域,本申请公开的多任务调度方法及系统的应用领域不做限定。
具体通过下述各个实施例进行说明。
为了在实现批量任务调度的基础上,降低Zookeeper注册中心压力,本实施例提供一种执行主体是多任务调度系统的多任务调度方法,该多任务调度系统包括但不限于服务器,如图1所示,该方法具体包含有如下内容:
步骤100:接收目标Zookeeper注册中心发送的作业请求。
具体地,目标Zookeeper注册中心可以根据预定义的排程计划,发起作业请求至多任务调度系统。
步骤200:根据预设的多任务调度总表,确定所述作业请求对应的目标任务的批量子任务。
具体地,所述预设的多任务调度总表可以预先配置在所述多任务调度系统的本地数据库中,可以包含有作业、任务和子任务之间的对应关系;一个作业请求可以对应至少一个任务,一个任务可以包含有多个子任务;若作业请求对应多个目标任务,则根据预设的多任务调度总表,可以确定各个目标任务各自的批量子任务。
步骤300:执行批量子任务。
由上述描述可知,本实施例提供的多任务调度方法,通过在多任务调度系统侧确定批量子任务,能够在实现多任务调度的基础上,降低Zookeeper注册中心的内存和传输压力,能够保证分布式批量调度框架运行的安全性;同时,实现Zookeeper注册中心内批量任务实例数量可控。
为了进一步提高确定批量子任务的可靠性,在本申请一个实施例中,所述预设的多任务调度总表,包括:批量配置表、批量任务运行表和并发定义表;相对应的,参见图2,步骤200包含有:
步骤201:根据所述批量配置表,确定目标任务的目标任务标识。
具体地,可以从所述批量配置表中获取作业标识为所述作业请求中的作业标识的记录,将该记录中的任务标识作为所述目标任务标识,批量配置表可以包含有作业与任务之间的对应关系,可根据实际需要进行设置;为了保证任务运行的可靠性,批量配置表还可以包含有:作业、任务和运行时长上限之间的对应关系,所述批量配置表的结构可以如表1所示。
表1
作业标识 | 任务标识 | 运行时长上限 |
A1000001 | A10000011 | *min |
A1000001 | A10000012 | *min |
A1000001 | A10000013 | *min |
A1000001 | A10000014 | *min |
B1000001 | B10000011 | …… |
步骤202:根据所述目标任务标识和批量任务运行表,获得所述目标任务的目标并发参数。
具体地,对于每个目标任务来说,可以从所述批量任务运行表中获取任务标识为该目标任务的目标任务标识的记录,将该记录中的并发参数作为该目标任务的目标并发参数;所述批量任务运行表可以包含有任务标识和并发参数之间的对应关系;所述批量任务运行表的结构可以如表2所示。
表2
步骤203:根据所述目标任务标识、目标并发参数,以及并发定义表,确定所述目标任务的批量子任务。
具体地,对于每个目标任务来说,若该目标任务的目标并发参数不为空,则可以从所述并发定义表中获得并发参数为该目标并发参数的记录,将该记录中的任务对象作为所述目标任务的任务对象,可以根据所述目标任务的任务标识和任务对象,确定所述目标任务的子任务,能够在提高确定批量子任务的可靠性的基础上,实现并发定义表的复用,减少存储压力;举例来说,若任务为份额交易批处理,份额交易批处理对应的每个子任务的执行过程均包含有:认购、申购、份额冻结和份额解冻处理,各子任务对应的任务对象不同;可以在调用任务的业务程序模块时,将该任务的任务对象作为传入参数传入该任务的程序模块中,将应用任务的一个任务对象调用该业务程序模块的过程作为该任务的一个子任务。所述并发定义表可以包含有:并发参数和任务对象之间的对应关系,所述并发定义表的结构可以如表3所示。
表3
并发参数 | 任务对象 |
产品维度 | 产品P1 |
产品维度 | 产品P2 |
产品维度 | 产品P3 |
产品维度 | 产品P4 |
…… | …… |
销售商维度 | 销售商A |
销售商维度 | 销售商B |
为了进一步提高任务调度的效率,在本申请一个实施例中,步骤300包含有:
步骤301:若所述目标任务的目标并发参数不为空,则并发执行该目标任务的批量子任务。
可以理解的是,若目标并发参数为空,则所述目标任务的并发类型为不并发;若目标并发参数不为空,则所述目标任务的并发类型为并发,可以并发执行该目标任务的各个子任务。
为了进一步解决批量调度的依赖问题,提高多任务调度的自动化程度和准确性,在本申请一个实施例中,步骤300还包含有:
步骤302:若目标任务的个数为多个,则根据每个目标任务的目标任务标识和所述批量任务运行表,确定该目标任务的前置任务。
具体地,当前任务的前置任务可以是各目标任务中除当前任务之外的一个或为空,各目标任务中执行顺序排在首位的任务的前置任务为空。
步骤303:根据各目标任务的前置任务,确定目标任务之间的执行顺序。
为了实现对任务运行状态的实时监控和预警,提高任务运行的可靠性,在本申请一个实施例中,步骤300还包括:
步骤311:实时监控批量子任务的运行状态。
具体地,可以实时监控批量子任务即目标任务的运行状态,运行状态可以包括:待处理,处理中,处理成功,处理失败,处理超时,终止和忽略等。
步骤312:若批量子任务运行状态异常,则输出批量子任务的异常预警信息。
为了进一步提高任务调度的可靠性,在本申请一个实施例中,步骤300还包括:
步骤321:根据所述批量配置表,确定批量子任务的运行时长上限。
具体地,目标任务的运行时长上限即批量子任务的运行时长上限。
步骤322:若批量子任务的运行时长超过其对应的运行时长上限,则输出批量子任务的超时预警信息。
具体地,若在所述运行时长上限对应的时长范围内,批量子任务未执行完成,则确定批量子任务的运行时长超过其对应的运行时长上限。
为了进一步提高任务调度的准确性,在本申请一个实施例中,还包括:
步骤400:接收预警处理请求。
具体地,可以接收前端发送的预警处理请求,该预警处理请求可以包含有:待处理批量子任务和处理方式信息。
步骤500:根据所述预警处理请求,处理批量子任务,处理方式包括:忽略、重新执行和结束批量子任务。
从软件层面来说,为了在实现批量任务调度的基础上,降低Zookeeper注册中心压力,本申请提供一种用于实现所述多任务调度方法中全部或部分内容的多任务调度系统的实施例,参见图3,所述多任务调度系统具体包含有如下内容:
接收装置10,用于接收目标Zookeeper注册中心发送的作业请求。
确定装置20,用于根据预设的多任务调度总表,确定所述作业请求对应的目标任务的批量子任务。
执行装置30,用于执行批量子任务。
本说明书提供的多任务调度系统的实施例具体可以用于执行上述多任务调度方法的实施例的处理流程,其功能在此不再赘述,可以参照上述多任务调度方法实施例的详细描述。
为了进一步说明本方案,本申请提出一种多任务调度系统的应用实例,参见图4,该多任务调度系统包含有:批量任务定义装置1、批量任务运行装置2和批量任务监控装置3;批量任务定义装置1与批量任务运行装置2相连;批量任务监控装置3与批量任务定义装置1、批量任务运行装置2相连;批量任务运行装置2实现的功能可以相当于上述接收装置10、确定装置20和执行装置30结合实现的功能;该多任务调度系统的具体描述如下:
批量任务定义装置1:用于存储用户自定义的批量配置表,该批量配置表包括:本地批量任务与分布式批量调度框架中预定义的排程计划之间的映射关系,以及各任务对应的运行时长上限等,用于配置映射关系;批量配置表存储在数据库中,供批量任务运行装置2和批量任务监控装置3进行高效读取操作。
批量任务运行装置2:用于从批量任务定义装置1中读取批量配置表,在应用系统启动分布式批量调度框架时,调起批量配置表中的预定义的排程计划后,在数据库中的本地批量任务运行表初始化本地按批量业务并发参数的批量子任务列表,并生成一个排程计划对应的本地主控进程,每个预定义的排程计划都会重新生成一个本地主控进程,避免互相干扰。在本地主控进程中调起批量子任务运行,批量子任务在线程级维度运行,每个批量子任务在完成后返回主控进程,由主控进程更新本地批量任务运行表,并在全部批量子任务运行完成后返回分布式批量调度框架该预定义的排程计划执行完毕的信息,如果批量子任务运行异常,主控进程根据批量任务监控装置3输入的调度指令(忽略、重新执行和执行完毕)对线程级维度的批量子任务进行对应操作,并更新本地批量任务运行表。
其中,所述批量任务运行表可以包含有:批量日期、任务ID、任务名称、作业分组、前置作业名称、并发类型(0-不并发,1-并发)、并发参数、作业状态(0-待处理,1-处理中,2-处理成功,3-处理失败,4-处理超时,5-终止,6-忽略)、是否重跑标志(1-是,0-否)、作业输入参数、作业输出参数、任务创建时间、任务更新时间、任务启动时间、任务结束时间和错误信息等。根据批量任务运行表中任务的并发类型(1-并发),执行并发定义的服务(支持RPC/HTTP调用服务获取并发参数)或SQL语句(读取配置在数据库中的并发参数)返回并发业务要素参数,该并发业务要素参数包括但不限于上述任务对象,按该参数维度生成批量子任务列表(如按产品维度生成或按销售商维度生成)。
批量任务监控装置3:用于从批量任务定义装置1中获取各任务的运行时长上限,根据批量任务运行装置2存储的本地批量任务运行表监控批量子任务运行情况,对超过运行时长上限的任务即批量子任务进行监控预警(支持短信、微信和邮件),并支持提供一个可视化的WEB前端界面,运维人员可通过可视化的WEB前端界面执行调度指令(忽略、重新执行和执行完毕)对批量子任务进行操作干预。
图5是本应用实例中批量任务定义装置1的结构示意图,如图5所示,所述批量任务定义装置1包括批量子任务配置单元11、批量子任务监控配置单元12和批量子任务参数操作单元13,其中:
批量子任务配置单元11:用于配置本地批量任务与分布式批量调度框架中预定义的排程计划的映射关系。
批量子任务监控配置单元12:用于配置本地批量任务的运行时长上限。
批量子任务参数操作单元13:用于从批量任务运行装置2和批量任务监控装置3读取批量子任务配置参数即上述并发业务要素参数。
图6是本应用实例中批量任务运行装置2的结构示意图,如图6所示,所述批量任务运行装置2包括批量子任务主控单元21和批量子任务执行单元22,其中:
批量子任务主控单元21:用于从批量任务定义装置1中读取批量配置表,生成按批量业务并发参数的批量子任务列表和一个分布式批量框架预定义排程计划对应的本地主控进程,本地主控进程用于对本地批量子任务进行批量调度(运行、忽略、重新执行、执行完毕)和批量子任务运行状态更新。
批量子任务执行单元22:用于接收本地主控进程的指令运行预配置的业务程序入口,生成批量子任务运行实例,执行实际的业务功能。
图7是批量任务监控装置3的结构示意图,如图7所示,所述批量任务监控装置3包括批量任务监控单元31和批量人工接管单元32,其中:
批量任务监控单元31:读取批量任务定义装置1中各任务的运行时长上限,根据批量任务运行装置2存储的本地批量任务运行表监控批量子任务运行情况,对超过运行时长上限的批量子任务和批量中断的批量子任务进行监控预警(支持短信、微信和邮件)。
批量人工接管单元32:提供一个可视化的WEB前端界面,运维人员可通过可视化的WEB前端界面执行调度指令(忽略、重新执行和执行完毕)对批量子任务进行操作干预。
为了进一步说明本方案,结合上述多任务调度系统,本申请提供一种多任务调度方法的应用实例,参见图8,具体描述如下:
步骤S101:自定义批量任务运行表。
步骤S102:分布式批量框架调起预定义的排程计划;分布式批量框架可以是xxl-job或Elastic-job框架等。
步骤S103:初始化本地按批量业务并发维度的批量子任务列表;批量任务运行装置2读取批量任务定义装置1中的批量配置表,在数据库中的本地批量任务运行表初始化本地按批量业务并发参数的批量子任务列表。所述批量子任务列表的结构可以如表4所示,子任务标识用于区分不同的子任务,同一子任务可以包含有多个处理方式。
表4
任务名称 | 子任务标识 | 子任务对象 | 并发类型 | 处理方式 | 前置任务名称 | 子任务状态 |
日切 | 0 | 无 | 不并发 | 初始化 | 空 | |
参数初始化 | 00000011 | 销售商A | 销售商 | 账户处理 | 日切 | |
参数初始化 | 00000012 | 销售商B | 销售商 | 账户处理 | 日切 | |
份额交易批处理 | 00000021 | 产品P1 | 产品 | 认购处理 | 参数初始化 | |
份额交易批处理 | 00000031 | 产品P2 | 产品 | 认购处理 | 参数初始化 | |
份额交易批处理 | 00000021 | 产品P1 | 产品 | 申购处理 | 参数初始化 | |
份额交易批处理 | 00000031 | 产品P2 | 产品 | 申购处理 | 参数初始化 | |
份额交易批处理 | 00000021 | 产品P1 | 产品 | 份额冻结处理 | 参数初始化 | |
份额交易批处理 | 00000031 | 产品P2 | 产品 | 份额冻结处理 | 参数初始化 |
步骤S104:本地主控进程调起批量子任务;批量任务运行装置2生成一个排程计划对应的本地主控进程,由主控进程调起批量子任务,并更新本地批量任务运行表。
步骤S105:获取各任务的运行时长上限;批量任务监控装置3读取批量任务定义装置1中的批量配置表,获取各任务的运行时长上限。
步骤S106:对超过运行时长上限的批量子任务进行监控预警;批量任务监控装置3读取批量任务运行装置2的本地批量任务运行表,监控批量子任务运行情况,对超过运行时长上限信息的批量子任务进行监控预警。
步骤S107:若批量执行结果成功,则返回分布式批量调度框架该预定义的排程计划执行完毕信息;如果批量子任务执行正常,批量任务运行装置2在全部批量子任务全部顺利运行完成后返回分布式批量调度框架该预定义的排程计划执行完毕信息。
步骤S108:若批量执行结果异常,则返回分布式批量调度框架该预定义的排程计划执行异常信息;如果批量子任务执行异常,批量任务运行装置2返回分布式批量调度框架该预定义的排程计划执行异常信息。
步骤S109:干预批量子任务运行;运维人员可通过批量任务监控装置3干预批量子任务运行,批量任务运行装置2接收批量任务监控装置3传入的批量执行指令,对批量子任务进行干预。
步骤S110:返回分布式批量调度框架该预定义的排程计划执行完毕信息;批量任务运行装置2在异常的批量子任务处理完成后返回分布式批量调度框架该预定义的排程计划执行完毕信息。
在本申请另一个应用实例中,所述交易并行调度方法包含有:
步骤1):批量任务定义装置1存储用户自定义的批量配置表,批量配置表包括:本地批量任务与分布式批量调度框架中预定义的排程计划的映射关系,以及各任务的运行时长上限,即各任务各自对应的运行时长上限。
步骤2):批量任务运行装置2根据步骤1)中的批量配置表,分布式批量调度框架调起预定义的排程计划后,在数据库中生成本地按批量业务并发维度的批量子任务,在子任务运行完成后更新本地批量任务运行表,并在全部子任务运行完成后返回分布式批量调度框架该预定义的排程计划执行完毕的信息。
步骤3):批量任务监控装置3,在步骤2)中调起批量子任务运行后,对该类批量子任务的运行时长和运行状态进行监控,提供可视化的界面展示批量子任务的运行情况,对超过运行时长的批量子任务进行和运行状态异常的批量子任务进行监控预警,并支持运维人员在前端界面对该批量子任务执行跳过、重新执行、执行完毕等指令。
在一种举例中,所述的多任务调度方法具体描述如下:
多任务调度系统接收作业请求,获取该作业请求对应的任务标识;从批量任务运行表获取该任务标识对应的任务名称和前置任务名称,参见图9,在本举例中,所述作业请求对应的任务包括:产品日切、账户批处理和份额交易批处理任务。产品日切任务不存在前置任务,账户批处理任务的前置任务为产品日切任务,份额交易批处理任务的前置任务为账户批处理,因此在产品日切、账户批处理执行完成之后执行份额交易批处理任务;调用DBF接口生成作业实例(作业间如有依赖会创建依赖作业的实例),账户批处理实例的任务对象包括:销售商A、销售商B和销售商N,份额交易批处理任务的任务对象包括:产品P1、产品P2和产品Pn;在执行完成对象销售商A、销售商B和销售商N对应的账户批处理后,并发执行产品P1、产品P2和产品Pn对应的份额交易批处理任务,份额交易批处理任务包括:认购处理、审批处理、份额冻结和份额解冻;每一步作业完成后更新批量子任务表中的任务状态;判断各任务对象对应的份额交易批处理任务是否均已处理完成,若是,则本次作业结束;能够在实现批量任务调度的基础上,降低Zookeeper注册中心压力,进而能够提高交易处理过程的可靠性。
由上述描述可知,本申请提供的多任务调度方法及系统,能够在实现批量任务调度的基础上,降低Zookeeper注册中心压力;具体地,能够实现提升批量调度性能的目的,同时又能够保证分布式批量调度框架Zookeeper注册中心中的批量任务实例数量可控,运行稳定。其优点如下:可适配多套分布式批量调度框架,适配性佳,可移植性较强;支持用户定制化的配置业务并发参数,通用灵活;实现批量任务监控的可视化,具备批量运行异常场景下的应急处理能力。
从硬件层面来说,为了在实现批量任务调度的基础上,降低Zookeeper注册中心压力,本申请提供一种用于实现所述多任务调度方法中的全部或部分内容的电子设备的实施例所述电子设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现所述多任务调度系统以及用户终端等相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例用于实现所述多任务调度方法的实施例及用于实现所述多任务调度系统的实施例进行实施,其内容被合并于此,重复之处不再赘述。
图10为本申请实施例的电子设备9600的系统构成的示意框图。如图10所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图10是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
在本申请一个或多个实施例中,多任务调度功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
步骤100:接收目标Zookeeper注册中心发送的作业请求。
步骤200:根据预设的多任务调度总表,确定所述作业请求对应的目标任务的批量子任务。
步骤300:执行批量子任务。
从上述描述可知,本申请的实施例提供的电子设备,能够在实现批量任务调度的基础上,降低Zookeeper注册中心压力。
在另一个实施方式中,多任务调度系统可以与中央处理器9100分开配置,例如可以将多任务调度系统配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现多任务调度功能。
如图10所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图10中所示的所有部件;此外,电子设备9600还可以包括图10中没有示出的部件,可以参考现有技术。
如图10所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
上述描述可知,本申请的实施例提供的电子设备,能够在实现批量任务调度的基础上,降低Zookeeper注册中心压力。
本申请的实施例还提供能够实现上述实施例中的多任务调度方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的多任务调度方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤100:接收目标Zookeeper注册中心发送的作业请求。
步骤200:根据预设的多任务调度总表,确定所述作业请求对应的目标任务的批量子任务。
步骤300:执行批量子任务。
从上述描述可知,本申请实施例提供的计算机可读存储介质,能够在实现批量任务调度的基础上,降低Zookeeper注册中心压力。
本申请中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本申请中应用了具体实施例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种多任务调度方法,其特征在于,包括:
接收目标Zookeeper注册中心发送的作业请求;
根据预设的多任务调度总表,确定所述作业请求对应的目标任务的批量子任务;
执行批量子任务。
2.根据权利要求1所述的多任务调度方法,其特征在于,所述预设的多任务调度总表,包括:批量配置表、批量任务运行表和并发定义表;
相对应的,所述根据预设的多任务调度总表,确定所述作业请求对应的目标任务的批量子任务,包括:
根据所述批量配置表,确定目标任务的目标任务标识;
根据所述目标任务标识和批量任务运行表,获得所述目标任务的目标并发参数;
根据所述目标任务标识、目标并发参数,以及并发定义表,确定所述目标任务的批量子任务。
3.根据权利要求2所述的多任务调度方法,其特征在于,所述执行批量子任务包括:
若所述目标任务的目标并发参数不为空,则并发执行该目标任务的批量子任务。
4.根据权利要求2所述的多任务调度方法,其特征在于,所述执行批量子任务,还包括:
若目标任务的个数为多个,则根据每个目标任务的目标任务标识和所述批量任务运行表,确定该目标任务的前置任务;
根据各目标任务的前置任务,确定目标任务之间的执行顺序。
5.根据权利要求2所述的多任务调度方法,其特征在于,所述执行批量子任务,还包括:
实时监控批量子任务的运行状态;
若批量子任务运行状态异常,则输出批量子任务的异常预警信息。
6.根据权利要求2所述的多任务调度方法,其特征在于,所述执行批量子任务,还包括:
根据所述批量配置表,确定批量子任务的运行时长上限;
若批量子任务的运行时长超过其对应的运行时长上限,则输出批量子任务的超时预警信息。
7.根据权利要求1所述的多任务调度方法,其特征在于,还包括:
接收预警处理请求;
根据所述预警处理请求,处理批量子任务,处理方式包括:忽略、重新执行和结束批量子任务。
8.一种多任务调度系统,其特征在于,包括:
接收装置,用于接收目标Zookeeper注册中心发送的作业请求;
确定装置,用于根据预设的多任务调度总表,确定所述作业请求对应的目标任务的批量子任务;
执行装置,用于执行批量子任务。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述的多任务调度方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被执行时实现权利要求1至7任一项所述的多任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110188321.9A CN112965814B (zh) | 2021-02-09 | 2021-02-09 | 多任务调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110188321.9A CN112965814B (zh) | 2021-02-09 | 2021-02-09 | 多任务调度方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112965814A true CN112965814A (zh) | 2021-06-15 |
CN112965814B CN112965814B (zh) | 2024-07-05 |
Family
ID=76285047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110188321.9A Active CN112965814B (zh) | 2021-02-09 | 2021-02-09 | 多任务调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112965814B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113391904A (zh) * | 2021-06-23 | 2021-09-14 | 中国工商银行股份有限公司 | 一种基于分布式框架的简批量定制调度方法及装置 |
CN113449991A (zh) * | 2021-06-29 | 2021-09-28 | 中国工商银行股份有限公司 | 动态批量作业调度方法及装置 |
CN113626172A (zh) * | 2021-08-27 | 2021-11-09 | 中国银行股份有限公司 | 基于微服务架构的批量程序处理方法、装置及系统 |
CN114331382A (zh) * | 2021-12-31 | 2022-04-12 | 中国邮政储蓄银行股份有限公司 | 批量文件处理方法、处理装置、处理器与批量处理系统 |
CN115705497A (zh) * | 2021-08-13 | 2023-02-17 | 合肥本源量子计算科技有限责任公司 | 一种量子计算机操作系统和量子计算机 |
CN115879561A (zh) * | 2022-12-30 | 2023-03-31 | 北京百度网讯科技有限公司 | 量子电路任务超时原因确定方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874090A (zh) * | 2017-01-23 | 2017-06-20 | 北京思特奇信息技术股份有限公司 | 基于云系统的作业调度方法和系统 |
CN107423122A (zh) * | 2017-07-25 | 2017-12-01 | 苏州博纳讯动软件有限公司 | 一种复杂运维作业编排与调度系统及其方法 |
CN110928668A (zh) * | 2019-12-09 | 2020-03-27 | 北京思特奇信息技术股份有限公司 | 一种基于ZooKeeper实现云化任务编排调度的方法和系统 |
CN111782366A (zh) * | 2020-06-30 | 2020-10-16 | 中国工商银行股份有限公司 | 一种分布式任务调度方法及装置 |
-
2021
- 2021-02-09 CN CN202110188321.9A patent/CN112965814B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874090A (zh) * | 2017-01-23 | 2017-06-20 | 北京思特奇信息技术股份有限公司 | 基于云系统的作业调度方法和系统 |
CN107423122A (zh) * | 2017-07-25 | 2017-12-01 | 苏州博纳讯动软件有限公司 | 一种复杂运维作业编排与调度系统及其方法 |
CN110928668A (zh) * | 2019-12-09 | 2020-03-27 | 北京思特奇信息技术股份有限公司 | 一种基于ZooKeeper实现云化任务编排调度的方法和系统 |
CN111782366A (zh) * | 2020-06-30 | 2020-10-16 | 中国工商银行股份有限公司 | 一种分布式任务调度方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113391904A (zh) * | 2021-06-23 | 2021-09-14 | 中国工商银行股份有限公司 | 一种基于分布式框架的简批量定制调度方法及装置 |
CN113391904B (zh) * | 2021-06-23 | 2024-04-26 | 中国工商银行股份有限公司 | 一种基于分布式框架的简批量定制调度方法及装置 |
CN113449991A (zh) * | 2021-06-29 | 2021-09-28 | 中国工商银行股份有限公司 | 动态批量作业调度方法及装置 |
CN115705497A (zh) * | 2021-08-13 | 2023-02-17 | 合肥本源量子计算科技有限责任公司 | 一种量子计算机操作系统和量子计算机 |
CN113626172A (zh) * | 2021-08-27 | 2021-11-09 | 中国银行股份有限公司 | 基于微服务架构的批量程序处理方法、装置及系统 |
CN114331382A (zh) * | 2021-12-31 | 2022-04-12 | 中国邮政储蓄银行股份有限公司 | 批量文件处理方法、处理装置、处理器与批量处理系统 |
CN115879561A (zh) * | 2022-12-30 | 2023-03-31 | 北京百度网讯科技有限公司 | 量子电路任务超时原因确定方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112965814B (zh) | 2024-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112965814B (zh) | 多任务调度方法及系统 | |
CN111813601A (zh) | 有状态分布式集群的微服务回滚方法及装置 | |
CN112463535B (zh) | 多集群异常处理方法及装置 | |
CN113138812B (zh) | 航天器任务调度方法及装置 | |
US10649765B2 (en) | Systems and methods for preventing service disruption during software updates | |
CN110908875A (zh) | 基于操作终端的巡检方法及装置 | |
CN111445331A (zh) | 交易撮合方法及装置 | |
CN111078506A (zh) | 业务数据跑批任务监控方法及装置 | |
CN110427260B (zh) | 主机作业调度方法、装置及系统 | |
CN112069154A (zh) | etcd分布式数据库自动运维方法及相关装置 | |
CN111401799A (zh) | 人机协同调度方法及装置、电子设备、存储介质 | |
CN111383104A (zh) | 基金投资监督指标的获取方法及装置 | |
CN112991064B (zh) | 业务处理方法、装置、计算机设备和存储介质 | |
CN112559158A (zh) | 微服务定时任务调度方法及装置 | |
CN111240998B (zh) | 测试用例处理方法和装置 | |
CN110889765B (zh) | 交易信息报送方法及装置 | |
CN112396511A (zh) | 分布式风控变量数据处理方法、装置及系统 | |
CN114971689B (zh) | 任务处理方法、装置、设备和存储介质 | |
CN115562898A (zh) | 分布式支付系统异常处理方法及装置 | |
CN113553152A (zh) | 作业调度方法及装置 | |
CN112799813A (zh) | 分布式作业服务调度方法、分布式服务器及业务终端 | |
CN108984318B (zh) | 基于驱动模型的消息投递方法、装置及可读存储介质 | |
CN113434423A (zh) | 接口测试方法及装置 | |
CN113342520A (zh) | 一种基于联邦实现的跨集群远程持续发布方法及系统 | |
CN113239921A (zh) | 一种ocr识别服务的任务分级与分发方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |