CN110611707A - 一种任务调度的方法及装置 - Google Patents
一种任务调度的方法及装置 Download PDFInfo
- Publication number
- CN110611707A CN110611707A CN201910834910.2A CN201910834910A CN110611707A CN 110611707 A CN110611707 A CN 110611707A CN 201910834910 A CN201910834910 A CN 201910834910A CN 110611707 A CN110611707 A CN 110611707A
- Authority
- CN
- China
- Prior art keywords
- scheduling
- task
- instruction
- server
- execution
- 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
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/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (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
本发明公开了一种任务调度的方法及装置,其中,方法包括:调度服务器的调度线程确定调度任务,调度服务器的调度线程解析调度任务,生成调度任务的调度指令并存储调度指令,调度服务器的任务下发线程在执行时间将调度指令下发至执行服务器。该技术方案用以将任务调度线程和任务执行线程解耦合,实现离线任务的准时调度。
Description
技术领域
本发明实施例涉及金融科技(Fintech)领域,尤其涉及一种任务调度的方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术(例如:区块链、云计算或大数据)应用在金融领域,传统金融业正在逐步向金融科技转变,大数据技术也不例外,但由于金融、支付行业的安全性、实时性要求,也对大数据技术提出的更高的要求。
金融科技领域中,互联网系统上有大量的离线任务需要定时调度运行,将应用的任务调度线程和任务执行线程在一个进程中强耦合,如遇到计算密集型的应用,任务执行线程占用大量的计算资源,很容易导致任务调度失准。
发明内容
本发明实施例提供一种任务调度的方法及装置,用以将任务调度线程和任务执行线程解耦合,实现离线任务的准时调度。
本发明实施例提供的一种任务调度的方法,包括:
调度服务器的调度线程确定调度任务;所述调度任务为按照预设频率执行的任务;
所述调度服务器的调度线程解析所述调度任务,生成所述调度任务的调度指令并存储所述调度指令;所述调度指令包括执行时间及执行的任务;
所述调度服务器的任务下发线程在所述执行时间将所述调度指令下发至执行服务器。
上述技术方案中,将调度服务器划分为调度线程和任务下发线程,调度线程仅用于解析调度任务并生成调度指令,以及将调度指令存储,调度线程耗费的计算资源相对有限且固定,可以为调度线程配置充足计算资源,以保障调度线程完成任务的有效调度,保障调度任务的准时调度;任务下发线程用于读取调度指令,并在调度指令的执行时间将该调度指令下发至执行服务器,以使得任务执行服务器直接根据调度指令执行任务,且任务执行服务器无需再对调度任务进行解析或计算下一次调度时间即可实现对任务的执行,提高了任务执行的效率。本发明实施例中,将任务调度线程和任务下发线程解耦合,以及将任务下发线程和任务执行线程解耦合,实现离线任务的准时调度。
可选的,所述调度任务包括调度信息和任务信息,所述调度信息包括执行任务的预设频率;
所述调度服务器的调度线程解析所述调度任务,生成所述调度任务的调度指令并存储所述调度指令,包括:
所述调度服务器的调度线程根据所述调度信息中的执行任务的预设频率,确定执行时间;
所述调度服务器的调度线程根据所述执行时间和所述任务信息,生成所述调度任务的调度指令;
所述调度服务器的调度线程将所述调度任务的调度指令存储至调度指令记录中。
上述技术方案中,调度服务器的调度线程解析调度任务,根据执行任务的预设频率确定任务的执行时间,以及根据执行时间和任务信息确定调度指令,该调度指令下发至执行服务器后,任务执行服务器无需再对调度任务进行解析或计算下一次调度时间即可实现对任务的执行,提高了任务执行的效率。且将调度指令存储至调度指令记录中,可以实现调度指令的可靠性存储,不会因为系统故障、断电等问题导致调度指令丢失。
可选的,所述调度指令记录中包括各调度指令的执行状态;
所述调度服务器的任务下发线程在所述执行时间将所述调度指令下发至执行服务器,包括:
所述调度服务器的任务下发线程在所述执行时间,根据所述调度指令记录中各调度指令的执行状态,确定所述执行服务器中正在执行的调度指令与所述调度指令可并行执行;
所述调度服务器的任务下发线程将所述调度指令下发至所述执行服务器,并在所述调度指令记录中将所述调度指令的执行状态由待执行更新为正在执行。
上述技术方案中,调度服务器的任务下发线程在执行时间根据调度指令记录中各调度指令的执行状态确定是否将调度指令下发至执行服务器,任务下发线程根据调度指令记录可以避免下发相互影响的调度指令,保障任务调度可靠性。
可选的,所述调度指令记录中包括与所述执行时间对应的M个调度指令;所述调度服务器的任务下发线程在所述执行时间最多下发N个调度指令,N小于等于M;
所述调度服务器的任务下发线程在所述执行时间将所述调度指令下发至执行服务器,包括:
所述调度服务器的任务下发线程根据所述M个调度指令中各调度指令的调度优先级,从所述M个调度指令中确定N个调度指令;
所述调度服务器的任务下发线程针对所述N个调度指令中的任一个,根据所述调度指令对应的任务信息,确定至少一个与所述任务信息相对应的第一执行服务器;根据负载均衡策略,从所述至少一个第一执行服务器中确定第二执行服务器;将所述调度指令下发至所述第二执行服务器中。
上述技术方案中,调度服务器的任务下发线程可以根据调度优先级选择性的从调度指令记录中确定出待下发的调度指令,且确定具体执行该调度指令的执行服务器。
可选的,所述调度服务器的调度线程在解析所述调度任务之前,还包括:
所述调度服务器的调度线程根据所述调度服务器的标识对所述调度任务锁定;
所述调度服务器的任务下发线程在将所述调度指令下发至执行服务器之前,还包括:
所述调度服务器的任务下发线程根据所述调度服务器的任务下发线程的标识对所述调度指令锁定。
上述技术方案中,任务调度集群中有多个调度服务器,各调度服务器同时向数据库中读取调度任务进行调度,为避免多个调度服务器调度相同的调度任务,调度服务器的调度线程根据调度服务器的标识对调度任务锁定;调度服务器的任务下发线程同样可以根据调度服务器的任务下发线程的标识对调度指令锁定,以避免多个调度服务器的任务下发线程下发同一个调度指令。调度服务器的调度线程对调度任务批量加锁,调度服务器的任务下发线程对调度指令批量加锁,建立一种可水平扩展的分布式任务调度平台。
可选的,所述调度服务器的任务下发线程在所述执行时间将所述调度指令下发至执行服务器之后,还包括:
所述调度服务器的调度线程生成所述调度指令的操作指令,所述操作指令至少包括以下指令之一:暂停指令、恢复指令、终止指令;
所述调度服务器的调度线程将所述操作指令存储至所述调度指令记录中;
所述调度服务器的任务下发线程将所述操作指令下发至所述执行服务器;
其中,所述暂停指令用于指示所述执行服务器上暂停执行所述调度指令;所述恢复指令用于指示所述执行服务器上恢复执行所述调度指令;所述终止指令用于指示所述执行服务器上终止执行所述调度指令。
上述技术方案中,调度服务器的调度线程不仅可以生成调度指令,用于执行任务,还可以生成调度指令的操作指令并经调度服务器的任务下发线程下发至执行服务器,用于对执行服务器中已经执行的任务进行暂停、恢复或终止,实现离线任务调度和执行的多样性。
相应的,本发明实施例还提供了一种任务调度的装置,包括:
确定单元,用于确定调度任务;所述调度任务为按照预设频率执行的任务;
处理单元,用于解析所述调度任务,生成所述调度任务的调度指令并存储所述调度指令;所述调度指令包括执行时间及执行的任务;
任务下发单元,用于在所述执行时间将所述调度指令下发至执行服务器。
可选的,所述调度任务包括调度信息和任务信息,所述调度信息包括执行任务的预设频率;
所述处理单元,具体用于:
根据所述调度信息中的执行任务的预设频率,确定执行时间;
根据所述执行时间和所述任务信息,生成所述调度任务的调度指令;
将所述调度任务的调度指令存储至调度指令记录中。
可选的,所述调度指令记录中包括各调度指令的执行状态;
所述任务下发单元,具体用于:
在所述执行时间,根据所述调度指令记录中各调度指令的执行状态,确定所述执行服务器中正在执行的调度指令与所述调度指令可并行执行;
将所述调度指令下发至所述执行服务器,并在所述调度指令记录中将所述调度指令的执行状态由待执行更新为正在执行。
可选的,所述调度指令记录中包括与所述执行时间对应的M个调度指令;所述任务下发单元在所述执行时间最多下发N个调度指令,N小于等于M;
所述任务下发单元,具体用于:
根据所述M个调度指令中各调度指令的调度优先级,从所述M个调度指令中确定N个调度指令;
针对所述N个调度指令中的任一个,根据所述调度指令对应的任务信息,确定至少一个与所述任务信息相对应的第一执行服务器;根据负载均衡策略,从所述至少一个第一执行服务器中确定第二执行服务器;将所述调度指令下发至所述第二执行服务器中。
可选的,所述处理单元,还用于:
在解析所述调度任务之前,根据调度服务器的标识对所述调度任务锁定;
所述处理单元,还用于:
在将所述调度指令下发至执行服务器之前,根据所述调度服务器的任务下发线程的标识对所述调度指令锁定。
可选的,所述处理单元,还用于:
在所述执行时间将所述调度指令下发至执行服务器之后,生成所述调度指令的操作指令,所述操作指令至少包括以下指令之一:暂停指令、恢复指令、终止指令;
将所述操作指令存储至所述调度指令记录中;
控制所述任务下发单元将所述操作指令下发至所述执行服务器;
其中,所述暂停指令用于指示所述执行服务器上暂停执行所述调度指令;所述恢复指令用于指示所述执行服务器上恢复执行所述调度指令;所述终止指令用于指示所述执行服务器上终止执行所述调度指令。
相应的,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述任务调度的方法。
相应的,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述任务调度的方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种系统架构的示意图;
图2为本发明实施例提供的一种任务调度的方法的流程示意图;
图3为本发明实施例提供的另一种任务调度的方法的流程示意图;
图4为本发明实施例提供的一种任务调度的装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1示例性的示出了本发明实施例提供任务调度的方法所适用的系统架构,该系统架构可以包括任务调度集群110和业务系统120。任务调度集群110中包括多个调度服务器,用于对离线任务进行定时调度,将调度的离线任务下发至业务系统120。业务系统120包括多个执行服务器,用于执行该调度的离线任务。任务调度集群110可以向用户提供配置界面,以便用户在配置界面上对离线任务进行配置。任务调度集群110提供分布式的任务调度能力,通过资源统一规划,统一监控手段,降低接入方在任务调度方面的使用成本,提高接入效率和任务调度的效率。
离线任务可以理解为按照一定频率执行的任务,如某一离线任务的执行频率为一天,在每天的15:00执行该离线任务。调度服务器可以设定在每天14:59:30的时候对该离线任务进行调度,此时,将该离线任务定义为调度任务,调度任务为按照预设频率执行的任务。
任务调度集群110中还可以设置本地数据库,本地数据库中记录有多个离线任务和各离线任务的执行频率,如在每天的15:00执行A离线任务、每天的15:00执行B离线任务、在每天的16:00执行C离线任务、在每周周三的15:00执行D离线任务等。调度服务器可以读取本地数据库,从而确定出下一次需要调度的离线任务,如可以在每天的14:59:30的时候确定出下一次要调度的离线任务有A离线任务、B离线任务和D离线任务(若为周三)。
基于上述描述,图2示例性的示出了本发明实施例提供的一种任务调度的方法的流程,该流程可以由任务调度的装置执行,该装置可以位于调度服务器中,可以是该调度服务器。
可以将调度服务器分为调度线程和任务下发线程,其中,调度服务器的调度线程用于对离线任务进行调度,生成调度指令,并将调度指令存储;调度服务器的任务下发线程用于将调度指令下发至执行服务器,以使执行服务器对该离线任务进行执行。
如图2所示,该流程具体包括:
步骤201,调度服务器的调度线程确定调度任务。
调度任务包括调度信息和任务信息。调度信息包括执行任务的预设频率,调度信息可以是Cron表达式,例如,“0 0 15?*WED”表示在每周三下午15:00执行。任务信息可以是该调度任务的任务参数或者任务上下文,如包括业务识别码、业务风险等级、传输协议等。
步骤202,调度服务器的调度线程解析调度任务,生成调度任务的调度指令并存储调度指令。
调度服务器的调度线程解析调度任务,可以是根据调度信息中的执行任务的预设频率,确定该调度任务的执行时间,再根据调度任务的执行时间和调度任务的任务信息,生成调度任务的调度指令。其中,调度指令包括执行时间和执行的任务,示例性的,根据调度任务“在每天的15:00执行A离线任务”生成的调度指令可以为“在2019年8月21日15:00执行A离线任务”,其中,“2019年8月21日15:00”即为该调度指令中的执行时间,“A离线任务”即为该调度指令中需要执行的任务。
调度服务器的调度线程可以将调度任务的调度指令存储至调度指令记录中,可选的,该调度指令记录可以是本地数据库中的一个调度指令表,也可以是其他形式。调度指令记录中记录了预设时段生成的所有调度指令,以及各调度指令的当前执行状态,执行状态可以由“待执行”、“正在执行”、“执行完成”,如调度服务器的调度线程生成一个调度指令,该调度指令还未被下发至执行服务器,则该调度指令的执行状态为“待执行”,若已被下发至执行服务器且尚未执行完成,则该调度指令的执行状态为“正在执行”,若已被下发至执行服务器且已经执行完成,则该调度指令的执行状态为“执行完成”。调度指令记录可以举例如表1所示。
表1
步骤203,调度服务器的任务下发线程在执行时间将调度指令下发至执行服务器。
调度服务器的任务下发线程根据调度指令记录中各调度指令的执行时间,确定待下发的调度指令,如当前时间为2019年8月21日15:00,则将执行时间为15:00的调度指令确定为待下发的调度指令。
调度服务器的任务下发线程将待下发的调度指令下发至执行服务器时,还要判断当前待下发的调度指令是否与执行服务器中正在执行的调度指令相互冲突,也即确定当前待下发的调度指令是否可以与正在执行的调度指令并行。一种可实现方式中,调度服务器的任务下发线程在执行时间,根据调度指令记录中各调度指令的执行状态,判断执行服务器中正在执行的调度指令是否与调度指令可并行执行,若是,则调度服务器的任务下发线程将该调度指令下发至执行服务器,并在调度指令记录中将该调度指令的执行状态由“待执行”更新为“正在执行”。否则,调度服务器的任务下发线程在确定执行服务器中正在执行的调度指令执行完成后,将该调度指令下发至执行服务器,并在调度指令记录中将该调度指令的执行状态由“待执行”更新为“正在执行”。
结合表1举例来说,当前时间为2019年8月21日16:00,调度指令记录中存在待执行的调度指令7,并根据调度指令记录中各调度指令的执行状态确定调度指令7是否与执行服务器中正在执行的调度指令可并行执行,若可并行执行,则将调度指令7下发至执行服务器,并更新调度指令7的执行状态为“正在执行”;若确定不可并行执行,且调度指令7与正在执行的调度指令4之间不可并行执行,则在调度指令4执行完成后,将调度指令7下发至执行服务器,并更新调度指令的执行状态为“正在执行”。
具体实现中,某些离线任务的执行间隔短但执行时长长,举例来说,某个离线任务每隔3min执行一次,但是该离线任务的执行时长在2min~4min,当该调度服务器的调度线程在该离线任务的第一次执行时生成调度指令并在执行时间下发后,该调度服务器的调度线程在该离线任务的第二次执行时生成调度指令,但此时该离线任务的第一次执行还未结束,且该离线任务不能并行执行,则需要等待该离线任务的第一次执行结束后再将第二次执行的调度指令下发至执行服务器。结合上述描述,一种可实现方式中,可以根据以下方式确定待下发调度指令是否与执行服务器中正在执行的调度指令可并行执行:根据待下发调度指令中的执行任务的标识确定调度指令记录中是否存在与待下发调度指令相同执行任务标识的且处于正在执行状态的调度指令,若存在,则确定该待下发调度指令中的执行任务是否可并行执行,即两个相同任务在同时执行时是否会存在相互影响,若确定不可并行执行,则确定在该正在执行的调度指令执行完成后将该待下发调度指令下发至执行服务器。
本发明实施例中,调度指令记录中包括与执行时间相对应的M个调度指令,且调度服务器的任务下发线程在该执行时间可同时下发N个调度指令;若N大于M,则调度服务器的任务下发线程可以在执行时间将N个调度指令同时下发至任务执行器;若N小于等于M,则调度服务器的任务下发线程可以根据M个调度指令中各调度指令的调度优先级,从M个调度指令中确定N个调度指令,并将确定出的N个调度指令下发至任务执行器。
在确认任务执行器时,调度服务器的任务下发线程可以针对N个调度指令中的任一个,根据调度指令对应的任务信息,确定至少一个与任务信息相对应的第一执行服务器,根据负载均衡策略,从至少一个第一执行服务器中确定第二执行服务器,将调度指令下发至第二执行服务器中。具体的,可以设置注册中心,该注册中心存储有任务执行实例列表,用于记录各执行服务器所能执行的任务,示例性的“A离线任务:服务器1、服务器2、服务器3……”,调度服务器的任务下发线程根据调度指令中的任务信息确定对应的执行服务器,并将该调度指令下发至执行服务器用于执行。
本发明实施例中,将调度服务器划分为调度线程和任务下发线程,调度线程仅用于解析调度任务并生成调度指令,以及将调度指令写入调度指令记录中,调度线程耗费的计算资源相对有限且固定,可以为调度线程配置充足计算资源,以保障调度线程完成任务的有效调度,保障调度任务的准时调度;任务下发线程用于读取调度指令记录中的调度指令,并在调度指令的执行时间将该调度指令下发至执行服务器,以使得任务执行服务器直接根据调度指令执行任务,且任务执行服务器无需再对调度任务进行解析或计算下一次调度时间即可实现对任务的执行,提高了任务执行的效率。本发明实施例中,将任务调度线程和任务下发线程解耦合,以及将任务下发线程和任务执行线程解耦合,实现离线任务的准时调度。
此外,由于任务调度集群中有多个调度服务器,各调度服务器同时向数据库中读取调度任务进行调度,为避免多个调度服务器调度相同的调度任务,本发明实施例中,调度服务器的调度线程根据调度服务器的标识对调度任务锁定,具体的,调度服务器调用数据库接口,从数据库中读取多个调度任务,并对该多个调度任务采用自己的服务器标识进行批量加锁,以防止其它调度服务器再次调度该调度任务。若该调度服务器读取多个调度任务,但该多个调度任务中有部分调度任务已经被其他调度服务器采用自己的服务器标识加锁,则该调度服务器也不能对该部分调度任务加锁成功。通过该方式,可以实现调度服务器对调度任务的批量加锁,且避免多个调度服务器对同一个调度任务进行调度。
具体实现中,有离线任务ID为T001,调度信息为“每天下午15:00执行”,调度服务器有第一调度服务器和第二调度服务器,第一调度服务器的服务IP为“10.3.2.109”,第二调度服务器的服务IP为“10.3.2.110”,调度服务器对T001加锁成功的条件有两个,条件一、T001的当前锁为空,条件二、下次调度时间为空或者下次调度时间小于等于当前时间30s。其中,条件二解释如下:
下次调度时间为空指的是T001为刚创建且之前未被调度过;下次调度时间小于当前时间30s指的是T001已被调度过且在上一次调度时计算的“下次调度时间”小于当前时间30s。
第一调度服务器、第二调度服务器对T001执行加锁调度流程可以如表2所示,具体分为三个时间点(2019.1.3、2019.1.4、2019.1.5)详细说明如下。
2019.1.3,第一调度服务器确定T001的下次调度时间为空时,根据自己的IP“10.3.2.109”对T001加锁,并在2019.1.3 15:00对T001执行调度,计算下次调度之间为2019.1.4 15:00,并释放对T001的加锁,则此时T001的当前锁为空。
2019.1.4,第二调度服务器在2019.1.4 14:59:30确定T001的下次调度时间为2019.1.4 15:00,根据自己的IP“10.3.2.110”对T001加锁,并在2019.1.4 15:00对T001执行调度,计算下次调度时间为2019.1.5 15:00,并释放对T001的加锁,则此时T001的当前锁为空。
2019.1.5,第一调度服务器在2019.1.5 14:59:30确定T001的下次调度时间为2019.1.5 15:00,根据自己的IP“10.3.2.109”对T001加锁,并在2019.1.5 15:00对T001执行调度,计算下次调度时间为2019.1.6 15:00,并释放对T001的加锁,则此时T001的当前锁为空。
表2
本发明实施例中,调度服务器的任务下发线程同样可以根据调度服务器的任务下发线程的标识对调度指令锁定,以避免多个调度服务器的任务下发线程下发同一个调度指令。
本发明实施例中,调度服务器的调度线程对调度任务批量加锁,调度服务器的任务下发线程对调度指令批量加锁,建立一种可水平扩展的分布式任务调度平台。
此外,调度服务器的任务下发线程在执行时间将调度指令下发至执行服务器之后,调度服务器的调度线程还可以生成调度指令的操作指令,并将该操作指令存储至调度指令记录中,调度服务器的任务下发线程将操作指令下发至执行服务器。其中,操作指令至少包括以下指令之一:暂停指令、恢复指令、终止指令,暂停指令用于指示执行服务器上暂停执行调度指令;恢复指令用于指示执行服务器上恢复执行调度指令;终止指令用于指示执行服务器上终止执行调度指令。调度服务器的调度线程不仅可以生成调度指令,用于执行任务,还可以生成调度指令的操作指令并经调度服务器的任务下发线程下发至执行服务器,用于对执行服务器中已经执行的任务进行暂停、恢复或终止,实现离线任务调度和执行的多样性。
为了更好的解释本发明实施例,下面将在具体的实施场景下描述该任务调度的流程,如图3所示,具体如下:
工作人员在本发明实施例提供的客户端界面上配置任务,并将该任务存储至本地数据库中。
调度服务器分为调度线程和任务下发线程,调度线程从本地数据库中获取线任务,根据自己的服务器标识对任务加锁,在对任务加锁成功后,计算该任务的下次执行时间,并生成调度指令,将调度指令保存至本地数据库的调度指令记录中。任务下发线程从调度指令记录中读取调度指令并根据自己的任务下发线程的标识对调度指令加锁,若对指令加锁成功,则执行下发指令,若未对指令加锁成功,则等待下次下发。具体的,任务下发线程执行下发指令为:先判断任务在执行服务器中是否可并行,若可并行则将该调度指令下发至执行服务器,若不可并行则判断与该任务的上一次执行是否结束,若结束,则可以将该调度指令下发至执行服务器,若未结束,则可以在确定该任务的上一次执行结束后,将该调度指令下发至执行服务器;任务下发线程等待下次下发为:任务下发线程在确定该任务的下一次调度指令存储至调度指令记录中后对该调度指令加锁。
执行服务器在接收到调度指令后,执行该调度指令中的任务,并在任务执行结束后,将执行结果上报至调度服务器,调度服务器进而更新调度指令记录中调度指令的执行状态。
本发明实施例中,将调度服务器划分为调度线程和任务下发线程,调度线程仅用于解析调度任务并生成调度指令,以及将调度指令写入调度指令记录中,调度线程耗费的计算资源相对有限且固定,可以为调度线程配置充足计算资源,以保障调度线程完成任务的有效调度,保障调度任务的准时调度;任务下发线程用于读取调度指令记录中的调度指令,并在调度指令的执行时间将该调度指令下发至执行服务器,以使得任务执行服务器直接根据调度指令执行任务,且任务执行服务器无需再对调度任务进行解析或计算下一次调度时间即可实现对任务的执行,提高了任务执行的效率。本发明实施例中,将任务调度线程和任务下发线程解耦合,以及将任务下发线程和任务执行线程解耦合,实现离线任务的准时调度,通过建立一种可水平扩展的分布式任务调度平台,能够使接入方聚焦核心业务逻辑的开发上,显著降低使用方的接入成本。同时通过集中管理、统一监控等手段,提升定时任务模块的稳定性和健壮性。
基于同一发明构思,图4示例性的示出了本发明实施例提供的一种任务调度的装置的结构,该装置可以执行任务调度的方法的流程。
该装置包括:
确定单元401,用于确定调度任务;所述调度任务为按照预设频率执行的任务;
处理单元402,用于解析所述调度任务,生成所述调度任务的调度指令并存储所述调度指令;所述调度指令包括执行时间及执行的任务;
任务下发单元403,用于在所述执行时间将所述调度指令下发至执行服务器。
可选的,所述调度任务包括调度信息和任务信息,所述调度信息包括执行任务的预设频率;
所述处理单元402,具体用于:
根据所述调度信息中的执行任务的预设频率,确定执行时间;
根据所述执行时间和所述任务信息,生成所述调度任务的调度指令;
将所述调度任务的调度指令存储至调度指令记录中。
可选的,所述调度指令记录中包括各调度指令的执行状态;
所述任务下发单元403,具体用于:
在所述执行时间,根据所述调度指令记录中各调度指令的执行状态,确定所述执行服务器中正在执行的调度指令与所述调度指令可并行执行;
将所述调度指令下发至所述执行服务器,并在所述调度指令记录中将所述调度指令的执行状态由待执行更新为正在执行。
可选的,所述调度指令记录中包括与所述执行时间对应的M个调度指令;所述任务下发单元403在所述执行时间最多下发N个调度指令,N小于等于M;
所述任务下发单元403,具体用于:
根据所述M个调度指令中各调度指令的调度优先级,从所述M个调度指令中确定N个调度指令;
针对所述N个调度指令中的任一个,根据所述调度指令对应的任务信息,确定至少一个与所述任务信息相对应的第一执行服务器;根据负载均衡策略,从所述至少一个第一执行服务器中确定第二执行服务器;将所述调度指令下发至所述第二执行服务器中。
可选的,所述处理单元402,还用于:
在解析所述调度任务之前,根据调度服务器的标识对所述调度任务锁定;
所述处理单元402,还用于:
在将所述调度指令下发至执行服务器之前,根据所述调度服务器的任务下发线程的标识对所述调度指令锁定。
可选的,所述处理单元402,还用于:
在所述执行时间将所述调度指令下发至执行服务器之后,生成所述调度指令的操作指令,所述操作指令至少包括以下指令之一:暂停指令、恢复指令、终止指令;
将所述操作指令存储至所述调度指令记录中;
控制所述任务下发单元403将所述操作指令下发至所述执行服务器;
其中,所述暂停指令用于指示所述执行服务器上暂停执行所述调度指令;所述恢复指令用于指示所述执行服务器上恢复执行所述调度指令;所述终止指令用于指示所述执行服务器上终止执行所述调度指令。
基于同一发明构思,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述任务调度的方法。
基于同一发明构思,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述任务调度的方法。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种任务调度的方法,其特征在于,包括:
调度服务器的调度线程确定调度任务,所述调度任务为按照预设频率执行的任务;
所述调度服务器的调度线程解析所述调度任务,生成所述调度任务的调度指令并存储所述调度指令,所述调度指令包括执行时间及执行任务;
所述调度服务器的任务下发线程在所述执行时间将所述调度指令下发至执行服务器。
2.如权利要求1所述的方法,其特征在于,所述调度任务包括调度信息和任务信息,所述调度信息包括执行任务的预设频率;
所述调度服务器的调度线程解析所述调度任务,生成所述调度任务的调度指令并存储所述调度指令,包括:
所述调度服务器的调度线程根据所述调度信息中的执行任务的预设频率,确定执行时间;
所述调度服务器的调度线程根据所述执行时间和所述任务信息,生成所述调度任务的调度指令;
所述调度服务器的调度线程将所述调度任务的调度指令存储至调度指令记录中。
3.如权利要求2所述的方法,其特征在于,所述调度指令记录中包括各调度指令的执行状态;
所述调度服务器的任务下发线程在所述执行时间将所述调度指令下发至执行服务器,包括:
所述调度服务器的任务下发线程在所述执行时间,根据所述调度指令记录中各调度指令的执行状态,确定所述执行服务器中正在执行的调度指令与所述调度指令可并行执行;
所述调度服务器的任务下发线程将所述调度指令下发至所述执行服务器,并在所述调度指令记录中将所述调度指令的执行状态由待执行更新为正在执行。
4.如权利要求2所述的方法,其特征在于,所述调度指令记录中包括与所述执行时间对应的M个调度指令;所述调度服务器的任务下发线程在所述执行时间最多下发N个调度指令,N小于等于M;
所述调度服务器的任务下发线程在所述执行时间将所述调度指令下发至执行服务器,包括:
所述调度服务器的任务下发线程根据所述M个调度指令中各调度指令的调度优先级,从所述M个调度指令中确定N个调度指令;
所述调度服务器的任务下发线程针对所述N个调度指令中的任一个,根据所述调度指令对应的任务信息,确定至少一个与所述任务信息相对应的第一执行服务器;根据负载均衡策略,从所述至少一个第一执行服务器中确定第二执行服务器;将所述调度指令下发至所述第二执行服务器中。
5.如权利要求4所述的方法,其特征在于,所述调度服务器的调度线程在解析所述调度任务之前,还包括:
所述调度服务器的调度线程根据所述调度服务器的标识对所述调度任务锁定;
所述调度服务器的任务下发线程在所述执行时间将所述调度指令下发至执行服务器之前,还包括:
所述调度服务器的任务下发线程根据所述调度服务器的任务下发线程的标识对所述调度指令锁定。
6.如权利要求2至5任一项所述的方法,其特征在于,所述调度服务器的任务下发线程在所述执行时间将所述调度指令下发至执行服务器之后,还包括:
所述调度服务器的调度线程生成所述调度指令的操作指令,所述操作指令至少包括以下指令之一:暂停指令、恢复指令、终止指令;
所述调度服务器的调度线程将所述操作指令存储至所述调度指令记录中;
所述调度服务器的任务下发线程将所述操作指令下发至所述执行服务器;
其中,所述暂停指令用于指示所述执行服务器上暂停执行所述调度指令;所述恢复指令用于指示所述执行服务器上恢复执行所述调度指令;所述终止指令用于指示所述执行服务器上终止执行所述调度指令。
7.一种任务调度的装置,其特征在于,包括:
确定单元,用于确定调度任务;所述调度任务为按照预设频率执行的任务;
处理单元,用于解析所述调度任务,生成所述调度任务的调度指令并存储所述调度指令;所述调度指令包括执行时间及执行任务;
任务下发单元,用于在所述执行时间将所述调度指令下发至执行服务器。
8.如权利要求7所述的装置,其特征在于,所述调度任务包括调度信息和任务信息,所述调度信息包括执行任务的预设频率;
所述处理单元,具体用于:
根据所述调度信息中的执行任务的预设频率,确定执行时间;
根据所述执行时间和所述任务信息,生成所述调度任务的调度指令;
将所述调度任务的调度指令存储至调度指令记录中。
9.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至6任一项所述的方法。
10.一种计算机可读非易失性存储介质,其特征在于,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行如权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910834910.2A CN110611707B (zh) | 2019-09-05 | 2019-09-05 | 一种任务调度的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910834910.2A CN110611707B (zh) | 2019-09-05 | 2019-09-05 | 一种任务调度的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110611707A true CN110611707A (zh) | 2019-12-24 |
CN110611707B CN110611707B (zh) | 2023-04-28 |
Family
ID=68892196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910834910.2A Active CN110611707B (zh) | 2019-09-05 | 2019-09-05 | 一种任务调度的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110611707B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111538604A (zh) * | 2020-04-22 | 2020-08-14 | 北京字节跳动网络技术有限公司 | 分布式任务处理系统 |
CN112445598A (zh) * | 2020-12-07 | 2021-03-05 | 建信金融科技有限责任公司 | 一种基于quartz的任务调度方法、装置、电子设备以及介质 |
CN112486658A (zh) * | 2020-12-17 | 2021-03-12 | 华控清交信息科技(北京)有限公司 | 一种任务调度方法、装置和用于任务调度的装置 |
CN112597131A (zh) * | 2020-12-25 | 2021-04-02 | 广州趣丸网络科技有限公司 | 一种分布式脚本控制方法及相关装置 |
CN113110329A (zh) * | 2021-04-14 | 2021-07-13 | 深圳赛动生物自动化有限公司 | 基于干细胞制备的并行操作控制方法、装置、系统及介质 |
WO2022017052A1 (zh) * | 2020-07-24 | 2022-01-27 | 青岛海尔空调器有限总公司 | 用于共享设备指令控制的方法、装置及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536827A (zh) * | 2015-01-27 | 2015-04-22 | 浪潮(北京)电子信息产业有限公司 | 一种数据调度方法和装置 |
CN105468450A (zh) * | 2015-12-29 | 2016-04-06 | 华为技术有限公司 | 任务调度方法及系统 |
CN106934511A (zh) * | 2015-12-30 | 2017-07-07 | 海能达通信股份有限公司 | 任务调度方法及系统、服务器、用户终端 |
CN109254835A (zh) * | 2018-06-27 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 批处理任务的处理方法、装置、服务器及可读存储介质 |
CN109800070A (zh) * | 2019-01-02 | 2019-05-24 | 深圳壹账通智能科技有限公司 | 任务处理方法和系统 |
CN109901920A (zh) * | 2019-01-18 | 2019-06-18 | 中国平安财产保险股份有限公司 | 任务调度方法及装置、电子终端 |
-
2019
- 2019-09-05 CN CN201910834910.2A patent/CN110611707B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536827A (zh) * | 2015-01-27 | 2015-04-22 | 浪潮(北京)电子信息产业有限公司 | 一种数据调度方法和装置 |
CN105468450A (zh) * | 2015-12-29 | 2016-04-06 | 华为技术有限公司 | 任务调度方法及系统 |
CN106934511A (zh) * | 2015-12-30 | 2017-07-07 | 海能达通信股份有限公司 | 任务调度方法及系统、服务器、用户终端 |
CN109254835A (zh) * | 2018-06-27 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 批处理任务的处理方法、装置、服务器及可读存储介质 |
CN109800070A (zh) * | 2019-01-02 | 2019-05-24 | 深圳壹账通智能科技有限公司 | 任务处理方法和系统 |
CN109901920A (zh) * | 2019-01-18 | 2019-06-18 | 中国平安财产保险股份有限公司 | 任务调度方法及装置、电子终端 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111538604A (zh) * | 2020-04-22 | 2020-08-14 | 北京字节跳动网络技术有限公司 | 分布式任务处理系统 |
CN111538604B (zh) * | 2020-04-22 | 2023-03-28 | 北京字节跳动网络技术有限公司 | 分布式任务处理系统 |
WO2022017052A1 (zh) * | 2020-07-24 | 2022-01-27 | 青岛海尔空调器有限总公司 | 用于共享设备指令控制的方法、装置及设备 |
CN112445598A (zh) * | 2020-12-07 | 2021-03-05 | 建信金融科技有限责任公司 | 一种基于quartz的任务调度方法、装置、电子设备以及介质 |
CN112445598B (zh) * | 2020-12-07 | 2022-11-01 | 建信金融科技有限责任公司 | 一种基于quartz的任务调度方法、装置、电子设备以及介质 |
CN112486658A (zh) * | 2020-12-17 | 2021-03-12 | 华控清交信息科技(北京)有限公司 | 一种任务调度方法、装置和用于任务调度的装置 |
CN112597131A (zh) * | 2020-12-25 | 2021-04-02 | 广州趣丸网络科技有限公司 | 一种分布式脚本控制方法及相关装置 |
CN112597131B (zh) * | 2020-12-25 | 2024-07-30 | 广州趣丸网络科技有限公司 | 一种分布式脚本控制方法及相关装置 |
CN113110329A (zh) * | 2021-04-14 | 2021-07-13 | 深圳赛动生物自动化有限公司 | 基于干细胞制备的并行操作控制方法、装置、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110611707B (zh) | 2023-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110611707B (zh) | 一种任务调度的方法及装置 | |
CN110825535B (zh) | 一种作业调度的方法和系统 | |
CN107016480B (zh) | 任务调度方法、装置及系统 | |
US8301935B2 (en) | Distributed batch runner | |
CN112181621B (zh) | 一种任务调度系统、方法、设备及存储介质 | |
CN111400011B (zh) | 一种实时任务调度方法、系统、设备及可读存储介质 | |
CN109656782A (zh) | 可视化调度监控方法、装置及服务器 | |
CN113569987A (zh) | 模型训练方法和装置 | |
US8538793B2 (en) | System and method for managing real-time batch workflows | |
CN113051019A (zh) | 流程任务执行管控方法、装置以及设备 | |
CN111274052A (zh) | 数据分发方法、服务器及计算机可读存储介质 | |
CN110427252A (zh) | 基于任务依赖关系的任务调度方法、装置及存储介质 | |
CN111190798A (zh) | 一种业务数据监控警告装置及方法 | |
CN115840631B (zh) | 基于raft的高可用分布式任务调度方法和设备 | |
CN114035925A (zh) | 一种工作流调度方法、装置、设备及可读存储介质 | |
CN110569113A (zh) | 分布式任务的调度方法及系统、计算机可读存储介质 | |
CN112231073A (zh) | 一种分布式任务调度方法及其装置 | |
US8171474B2 (en) | System and method for managing, scheduling, controlling and monitoring execution of jobs by a job scheduler utilizing a publish/subscription interface | |
CN110619014A (zh) | 一种基于etl的数据抽取方法 | |
CN113485814A (zh) | 批量任务调度方法及装置 | |
CN113434323A (zh) | 数据中台的任务流控制方法及相关装置 | |
CN111258741A (zh) | 仓库任务执行的方法、分布式服务器集群及计算机设备 | |
CN111082964B (zh) | 一种配置信息的分发方法和装置 | |
CN113268318A (zh) | 一种任务调度的方法和分布式系统 | |
CN117149378A (zh) | 智能汽车操作系统的任务调度方法、装置、设备及介质 |
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 |