CN106648845A - 一种分布式任务调度系统及方法 - Google Patents

一种分布式任务调度系统及方法 Download PDF

Info

Publication number
CN106648845A
CN106648845A CN201610843823.XA CN201610843823A CN106648845A CN 106648845 A CN106648845 A CN 106648845A CN 201610843823 A CN201610843823 A CN 201610843823A CN 106648845 A CN106648845 A CN 106648845A
Authority
CN
China
Prior art keywords
message
task
sub
module
multigroup
Prior art date
Application number
CN201610843823.XA
Other languages
English (en)
Inventor
林桂泉
Original Assignee
努比亚技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 努比亚技术有限公司 filed Critical 努比亚技术有限公司
Priority to CN201610843823.XA priority Critical patent/CN106648845A/zh
Publication of CN106648845A publication Critical patent/CN106648845A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Abstract

本发明的主要目的在于提出一种分布式任务调度系统及方法,旨在解决现有技术的任务调度方式缺少分布式并行执行功能的问题。该系统包括:至少一个调度模块以及至少两个执行模块;调度模块用于接收外部输入的配置信息,并根据配置信息向至少两个执行模块中的至少一个执行模块发起调度请求;执行模块用于在接收来自调度模块的调度请求后,根据调度请求执行对应的业务逻辑,该方案提高了系统整体的稳定性和可扩展性。

Description

_种分布式任务调度系统及方法

技术领域

[0001] 本发明涉及计算机互联网领域,尤其涉及一种分布式任务调度系统及方法。

背景技术

[0002]随着互联网技术的快速发展,客户端任务的调用技术也日益成熟,在不同系统之间的交互过程中,现有的关于任务的调度方式均采用预先设定调度规则的方式去处理,一般情况下,工作人员通常会在调用程序中撰写一条具体的调度程序,为了保证调度的准确性,该调度程序的类型仅针对一种调度任务。

[0003]目前,现在使用的定时任务大致有以下几种:

[0004] Crontab: Linux系统级的定时任务执行器,该任务执行器缺乏分布式和集中管理功能。Quartz: Java事实上的定时任务标准。但Quartz关注点在于定时任务而非数据,并无一套根据数据处理而定制化的流程。虽然Quartz可以基于数据库实现作业的高可用,但缺少分布式并行执行作业的功能。上述的定时任务管理麻烦、可能因为各种原因失败、且失败不能及时通知相关负责人。

发明内容

[0005] 本发明的主要目的在于提出一种分布式任务调度系统及方法,旨在解决现有技术的任务调度方式缺少分布式并行执行功能的问题。

[0006] 根据本发明的一个方面,提供了一种分布式任务调度系统,该系统包括:至少一个调度模块以及至少两个执行模块;调度模块用于接收外部输入的配置信息,并根据配置信息向至少两个执行模块中的至少一个执行模块发起调度请求;执行模块用于在接收来自调度模块的调度请求后,根据调度请求执行对应的业务逻辑。

[0007] 其中,上述配置信息包括:任务组、任务描述、执行器地址、计划任务时间、工作处理程序、报警邮件、任务负责人、以及超时时间。

[0008] 其中,上述调度模块,包括:调度池、调度器、回调任务模块以及调度日志模块;调度池用于存储线程资源;调度器用于根据配置信息向调度池请求线程资源,通过线程资源向执行器发起调度请求;回调服务模块用于返回调度状态/结果;调度日志模块用于保存调度日志以及执行日志,以及根据外部输入的指令对调度日志或执行日志进行查看或更改。

[0009] 其中,上述执行模块,包括:执行器、任务模块以及回调日志模块;执行器用于根据来自调度模块的调度请求执行对应的业务逻辑;任务模块用于存储业务逻辑;回调日志模块用于在一个任务执行完成后,将任务执行的结果发送至调度模块,以是调度模块呈现任务执行的结果。

[0010] 其中,上述调度模块还用于:接收外部输入的暂停任务指令、终止任务指令、删除任务指令以及查看、修改日志的指令,日志包括:执行日志以及调度日志;在接收到暂停任务指令后,暂停对应任务的调度;在接收到删除任务指令后,删除对应的任务;在接收到查看、修改日志的指令后,呈现、修改对应的日志。

[0011] 其中,上述执行模块还用于:在通过调度模块所呈现的调度日志页面接收到的终止任务执行指令后,终止对应任务的执行。

[0012] 根据本发明的另一个方面,提供了一种分布式任务调度方法,包括:通过调度模块接收外部输入的配置信息;将配置信息发送至执行模块,通过执行模块执行与配置信息对应的业务逻辑。

[0013] 其中,上述配置信息包括:任务组、任务描述、执行器地址、计划任务时间、工作处理程序、报警邮件、任务负责人、以及超时时间。

[0014] 进一步的,上述方法还包括:通过调度模块接收外部输入的暂停任务指令、终止任务指令、删除任务指令以及查看、修改日志的指令,日志包括:执行日志以及调度日志;在接收到暂停任务指令后,暂停对应任务的调度;在接收到删除任务指令后,删除对应的任务;在接收到查看、修改日志的指令后,呈现、修改对应的日志。

[0015] 进一步的,上述方法还包括:在通过调度模块所呈现的调度日志页面接收到的终止任务执行指令后,终止对应任务的执行。

[0016] 本发明提出的分布式调度系统,将调度以及执行部分进行解耦,提高了系统整体的稳定性和可扩展性,同时,由于可接受外部输入的配置信息,根据配置信息对任务进行调度,实现了任务的并行执行,提高了系统的效率。

附图说明

[0017]图1是本发明第一实施例中的分布式调度系统的结构框图;

[0018]图2是配置信息的用户界面示意图;

[0019]图3是本发明第二实施例中的分布式调度系统的结构框图;

[0020]图4是调度日志的界面示意图;

[0021]图5是本发明第二实施例的分布式任务调度系统的用户界面示意图;

[0022]图6是在日志页面终止任务执行的示意图;

[0023]图7是在本发明第四实施例提供的分布式任务调度方法的流程图。

[0024] 本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0025] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

[0026] 现在将参考附图描述实现本发明各个实施例的移动终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,"模块"与"部件"可以混合地使用。

[0027] 第一实施例

[0028] 本实施例提供了一种分布式任务调度系统,图1是该系统的结构框图,如图1所示,该系统10可以包括如下组成部分:

[0029] 至少一个调度模块11 (图1中以一个调度模块进行示例,具体不限于一个)以及至少两个执行模块12 (图中暂且以两个执行模块进行示例,具体不限于两个);

[0030] 其中,调度模块11用于接收外部输入的配置信息,并根据配置信息向至少两个执行模块中的至少一个执行模块发起调度请求;其中,调度模块可以借助终端设备呈现一个用户界面,如图2所示,该界面上可以具有供用户输入配置信息的接口,该配置信息即可以是由用户通过该接口进行输入的,也可以是通过其他形式输入的,本实施例中所涉及到的配置信息具体可以包括:任务组、任务描述、执行器地址、计划任务时间、工作处理程序、报警邮件、任务负责人、以及超时时间,可选的,配置信息还可以包括执行参数以及子任务唯一标识,即,在配置信息的过程中用户可以设置执行参数以及子任务唯一标识,也可以不设置这两项参数。

[0031] 其中,在使用本实施例提供的任务调度系统配置新建任务时,用户首先需要登录调度模块,用户登陆成功后即可基于调度模块提供的用户界面进行配置信息的设置。

[0032]执行模块12用于在接收来自调度模块的调度请求后,根据调度请求执行对应的业务逻辑。

[0033]需要说明的是,本实施例中所涉及到的调度模块仅负责发起调度请求等操作,所有的任务的调度参数、调度日志都保存在调度模块,该模块不承担业务逻辑,而执行器则只负责业务逻辑,不负责任务的具体调度执行,这样使得本实施例所提供的任务调度系统的“调度”和“任务”两个部分可以相互解耦,提高了任务调度系统整体的稳定性以及可扩展性。

[0034]可选的,本实施例所涉及的分布式任务调度系统可以是使用Quartz进行开发的。

[0035] 第二实施例

[0036] 本实施例在上述第一实施例提供的分布式任务调度系统的基础上,提供了另一种具有更多功能的系统,图3是该系统的结构框图,如图3所示,该系统具有如下特点:

[0037]如图3所示,该系统30包括调度模块31以及执行模块32,其中,调度模块31包括:调度池311、调度器312、回调任务模块313以及调度日志模块314;其中,调度池311用于存储线程资源;调度器312用于根据配置信息向调度池请求线程资源,通过线程资源向执行器发起调度请求;回调服务模块313用于返回调度状态/结果;调度日志模块314用于保存调度日志以及执行日志,以及根据外部输入的指令对调度日志或执行日志进行查看或更改,如图4所不O

[0038] 其中,如图3所示,执行模块32具体包括:

[0039] 执行器321、任务模块322以及回调日志模块323;

[0040] 执行器321用于根据来自调度模块的调度请求执行对应的业务逻辑;

[0041] 任务模块322用于存储业务逻辑;

[0042]回调日志模块323用于在一个任务执行完成后,将任务执行的结果发送至调度模块,以是调度模块呈现任务执行的结果。

[0043] 基于上述组成部分,本实施例中的调度模块31还可以用于:

[0044] 接收外部输入的暂停任务指令、终止任务指令、删除任务指令以及查看、修改日志的指令,日志包括:执行日志以及调度日志;在接收到暂停任务指令后,暂停对应任务的调度;在接收到删除任务指令后,删除对应的任务;在接收到查看、修改日志的指令后,呈现、修改对应的日志,本实施例所提供的分布式任务调度系统可提供如图5所示的用户界面,基于该用户界面上所呈现的执行、暂停、日志、编辑、删除等虚拟按钮,用户可以输入指定的功能性指令,以实现对任务的执行、暂停以及对呈现日志、对日志的编辑、删除任务等功能。

[0045]可选的,如图6所示,本实施例提供的执行模块还用于在通过调度模块所呈现的调度日志页面接收到的终止任务执行指令后,终止对应任务的执行。

[0046] 第三实施例

[0047] 本实施例在上述第一实施例以及第二实施例的基础上,对基于上述第一实施例以及第二实施例提供的分布式任务调度系统进行任务调度的流程进行简要阐述,该流程即为本实施例所提供的分布式任务调度方法,该方法包括如下操作:

[0048] 步骤I:初始化调度模块

[0049] 初始化调度器、初始化日志回调服务、初始化执行模块以及初始化执行器。

[0050] 步骤2:配置新建任务

[0051]用户登陆调度模块,基于调度模块提供的用户界面新建任务,配置相关参数。

[0052] 步骤3:调度模块根据配置信息调度任务

[0053] 根据配置的Cron (计划任务)执行时间,到达指定时间发起调度请求;

[0054]用户点击执行,可立即发起调度请求;

[0055]用户点击暂停,暂停任务;

[0056]用户点击删除,删除任务;

[0057] 此处需要说明的是,如果用户发起暂停或删除任务指令,只需要调度模块暂停调度或者删除任务即可,不需要执行模块来执行暂停或者删除任务的操作。

[0058] 本实施例中所暂停是指不会在预先配置好的cron时间(如12点O分O秒)执行任务;

[0059] 点击日志查看、修改任务的调度日志或执行日志。

[0060] 步骤4:执行模块执行任务

[0061]执行模块接收到调度模块的调度请求后,根据请求信息执行对应的任务(业务逻辑),任务执行完成后,回调日志,把任务执行结果写回调度模块。

[0062] 步骤5:终止任务

[0063]执行模块执行任务过程中,可以在调度模块的调度日志页面终止任务的执行,也可以实时查看执行模块的执行日志,如图6所示。

[0064] 步骤6:调度模块保存任务日志

[0065]调度模块保存执行模块的调度和执行日志,支持实时查看。

[0066] 第四模块

[0067] 本实施例提供了一种分布式任务调度方法,图7是该方法的流程图,如图7所示,该方法包括如下处理:

[0068] 步骤701:通过调度模块接收外部输入的配置信息;

[0069] 步骤702:将配置信息发送至执行模块,通过执行模块执行与配置参对应的业务逻辑。

[0070] 本实施例提供的方法可以使用上述第一实施例以及第二实施例提供的系统来执行,基于此,本实施例中所涉及到的调度模块以及执行模块即可以是上述第一实施例以及第二实施例中涉及到的任意一种调度模块以及执行模块。

[0071] 其中,配置信息具体可以包括:任务组、任务描述、执行器地址、计划任务时间、工作处理程序、报警邮件、任务负责人、以及超时时间,可选的,配置信息还可以包括执行参数以及子任务唯一标识,即,在配置信息的过程中用户可以设置执行参数以及子任务唯一标识,也可以不设置这两项参数。

[0072] 进一步的,本实施例提供的方法还可以包括:通过调度模块接收外部输入的暂停任务指令、终止任务指令、删除任务指令以及查看、修改日志的指令,日志包括:执行日志以及调度日志;在接收到暂停任务指令后,暂停对应任务的调度;在接收到删除任务指令后,删除对应的任务;在接收到查看、修改日志的指令后,呈现、修改对应的日志;以及在通过调度模块所呈现的调度日志页面接收到的终止任务执行指令后,终止对应任务的执行。、

[0073] 本发明实施例提供的分布式任务调度系统,支持任务串行执行、并行执行;支持远程任务执行终止;支持任务日志的查看、修改;支持动态修改任务状态,动态暂停/恢复任务,即时生效;支持通过Web页面对任务进行CRUD (增删改查)操作;且调度和执行解耦,提高系统整体稳定性和扩展性。

[0074]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

[0075]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

[0076] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如R0M/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,月艮务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

[0077]以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种消息分发装置,其特征在于,所述装置包括: 读取模块,用于从消息系统中读取消息; 划分模块,用于将读取到的消息划分为多组消息; 创建模块,用于创建多个子线程; 发送模块,用于将所述多组消息分别发送至各子线程。
2.根据权利要求1所述的装置,其特征在于,所述划分模块具体用于: 将读取到的消息划分为消息个数均等的多组消息。
3.根据权利要求1所述的装置,其特征在于,所述创建模块具体用于: 创建与划分后的多组消息的组数相同个数的子线程。
4.根据权利要求1所述的装置,所述读取模块具体用于: 调用消息系统消费者客户端的接口来读取所述消息系统中的消息。
5.根据权利要求1至4任意一项所述的装置,其特征在于,所述创建模块具体用于: 创建预设个数的子线程; 或根据接收到的外部指令创建与所述外部指令对应个数的子线程。
6.一种消息分发方法,其特征在于,所述方法包括步骤: 从消息系统中读取消息; 将读取到的消息划分为多组消息; 创建多个子线程; 将所述多组消息分别发送至各子线程。
7.根据权利要求6所述的方法,其特征在于,所述将读取到的消息划分为多组消息,包括: 将读取到的消息划分为消息个数均等的多组消息。
8.根据权利要求6所述的方法,其特征在于,所述创建多个子线程,包括: 创建与划分后的多组消息的组数相同个数的子线程。
9.根据权利要求6所述的方法,所述从消息系统中读取消息,包括: 调用Kafka消费者客户端的接口来读取所述消息系统中的消息。
10.根据权利要求6至9任意一项所述的方法,其特征在于,所述创建多个子线程,包括: 创建预设个数的子线程; 或根据接收到的外部指令创建与所述外部指令对应个数的子线程。
CN201610843823.XA 2016-09-23 2016-09-23 一种分布式任务调度系统及方法 CN106648845A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610843823.XA CN106648845A (zh) 2016-09-23 2016-09-23 一种分布式任务调度系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610843823.XA CN106648845A (zh) 2016-09-23 2016-09-23 一种分布式任务调度系统及方法

Publications (1)

Publication Number Publication Date
CN106648845A true CN106648845A (zh) 2017-05-10

Family

ID=58852711

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610843823.XA CN106648845A (zh) 2016-09-23 2016-09-23 一种分布式任务调度系统及方法

Country Status (1)

Country Link
CN (1) CN106648845A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107357669A (zh) * 2017-07-10 2017-11-17 深圳乐信软件技术有限公司 一种计算单元的并发调用方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014173339A1 (zh) * 2013-08-07 2014-10-30 中兴通讯股份有限公司 一种任务调度服务系统及方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014173339A1 (zh) * 2013-08-07 2014-10-30 中兴通讯股份有限公司 一种任务调度服务系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
许雪里: "分布式任务调度平台xxl-job", 《HTTPS://GITHUB.COM/XUXUELI/XXL-JOB/BLOB/V1.3/README.MD》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107357669A (zh) * 2017-07-10 2017-11-17 深圳乐信软件技术有限公司 一种计算单元的并发调用方法及系统

Similar Documents

Publication Publication Date Title
US7929684B2 (en) High availability multi-tenant feature
US7184801B2 (en) Mobile application builder
CN104956330B (zh) 具有资源感知的工作量分配
JP4536817B2 (ja) エンドユーザによるワークフローの動的な再配置
US20060067252A1 (en) Method and apparatus for providing communication tasks in a workflow
US20120078679A1 (en) System, method and computer program product for controlling workflow
CN101252471B (zh) 一种分布式自动化测试系统及其方法
US6799314B2 (en) Work flow management method and work flow management system of controlling a work flow
US9519884B2 (en) Data driven dynamic workflow
JP2011008806A (ja) 装置管理システム及びそのシステムにおける装置管理命令スケジューリング方法
US20040102940A1 (en) Integration of a discrete event simulation with a configurable software application
US20070174390A1 (en) Customer service management
US7587638B2 (en) Method and system for generating and monitoring variable load on an application under test
JP5160553B2 (ja) サーバ・リソースに依存せずにクライアント環境内で用いるポートレットの集約
CN104272292B (zh) 用于基于云的服务的网络资源部署
US20020016809A1 (en) System and method for scheduling execution of cross-platform computer processes
US8270320B2 (en) Method and apparatus for launching a conference based on presence of invitees
EP3115902A1 (en) Framework for automated testing of mobile apps
DE60219674T2 (de) Verteiltes Spracherkennungssystem und Verfahren zum Betreiben desselben
US20100100412A1 (en) Workflow management in a global support organization
CN103197952B (zh) 基于云基础设施的针对应用系统维护部署的管理系统和方法
JP2009522645A (ja) ワークフローベースのアプリケーションにおけるユーザ入力および対話のモデル化
US20130060596A1 (en) Easy Process Modeling Platform
US20110179398A1 (en) Systems and methods for per-action compiling in contact handling systems
US8612406B1 (en) Sharing business data across networked applications

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