CN108984290A - 任务调度方法和*** - Google Patents

任务调度方法和*** Download PDF

Info

Publication number
CN108984290A
CN108984290A CN201810872439.1A CN201810872439A CN108984290A CN 108984290 A CN108984290 A CN 108984290A CN 201810872439 A CN201810872439 A CN 201810872439A CN 108984290 A CN108984290 A CN 108984290A
Authority
CN
China
Prior art keywords
task
service
unit
pending
execution unit
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
Application number
CN201810872439.1A
Other languages
English (en)
Other versions
CN108984290B (zh
Inventor
胡彦丽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JD Digital Technology Holdings Co Ltd
Jingdong Technology Holding Co Ltd
Original Assignee
Beijing Jingdong Financial Technology Holding Co Ltd
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 Beijing Jingdong Financial Technology Holding Co Ltd filed Critical Beijing Jingdong Financial Technology Holding Co Ltd
Priority to CN201810872439.1A priority Critical patent/CN108984290B/zh
Publication of CN108984290A publication Critical patent/CN108984290A/zh
Application granted granted Critical
Publication of CN108984290B publication Critical patent/CN108984290B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种任务调度方法和***,涉及计算机技术领域。该方法的一具体实施方式包括:将用户创建的至少一个待执行任务经第一执行单元发送到缓存单元进行存储;其中,每一待执行任务中含有触发条件和执行该任务所需服务的标识;第一执行单元是预先建立的多个任务执行单元中,负载量符合第一预设条件的任务执行单元;监测每一待执行任务的触发条件是否满足;在任一待执行任务的触发条件满足时,利用所述多个任务执行单元中的第二执行单元从缓存单元中获取该任务,并从服务提供单元中调用该任务所需的服务以执行该任务。该实施方式可利用多个任务执行单元组成的服务器集群进行任务的存储与执行,从而使***可应对高并发访问的情形。

Description

任务调度方法和***
技术领域
本发明涉及计算机技术领域,尤其涉及一种任务调度方法和***。
背景技术
在计算机技术领域,任务调度(job schedule)指的是通知或控制一个或多个软件组件在预设条件下执行。现有技术中,存在Quartz(一种开源的任务调度项目)等任务调度框架,能够集成到应用***中,实现预设任务在预设触发时刻的自动执行。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:现有的任务调度框架一般部署在单机或单机集群中,无法在高并发访问的情况下保持任务调度的准确性和高可用性,也难以应对服务器掉电、网络故障等情况;同时,在现有的任务调度框架中,与服务提供方交互时一般不支持超文本传输协议HTTP(HyperText Transfer Protocol)等通用访问方式,这影响了***性能与用户体验。
发明内容
有鉴于此,本发明实施例提供一种任务调度方法和***,可利用多个任务执行单元组成的服务器集群进行任务的存储与执行,从而使***可应对高并发访问的情形;此外,还可在多个任务执行单元中选择较合适者处理任务以提升***性能。
为实现上述目的,根据本发明的一个方面,提供了一种任务调度方法。
本发明实施例的任务调度方法包括:将用户创建的至少一个待执行任务经第一执行单元发送到缓存单元进行存储;其中,每一待执行任务中含有触发条件和执行该任务所需服务的标识;第一执行单元是预先建立的多个任务执行单元中,负载量符合第一预设条件的任务执行单元;监测每一待执行任务的触发条件是否满足;在任一待执行任务的触发条件满足时,利用所述多个任务执行单元中的第二执行单元从缓存单元中获取该任务,并从服务提供单元中调用该任务所需的服务以执行该任务。
可选地,所述触发条件为时间触发条件;所述方法进一步包括:在将待执行任务发送到缓存单元进行存储之后:针对每一待执行任务,由第一执行单元根据该任务的时间触发条件确定其未来的每一触发时刻,并将得到的每一触发时刻存储在缓存单元;所述监测每一待执行任务的触发条件是否满足,具体包括:监测当前时刻是否等于每一待执行任务的任一触发时刻。
可选地,所述服务提供单元为:在可提供触发条件满足的任务所需服务的多个服务提供单元中,负载量符合第二预设条件的服务提供单元;每一待执行任务中进一步包括任务状态;所述方法进一步包括:在所述利用所述多个任务执行单元中的第二执行单元从缓存单元中获取该任务之后,将该任务的任务状态更改为锁定状态;在任一待执行任务执行失败之后,以预设周期连续执行该任务直到执行成功,且在连续执行失败次数等于预设阈值时告警。
可选地,所述多个任务执行单元组成服务器集群;第一预设条件为:选取负载量最小的任务执行单元;第二预设条件为:选取负载量最小的服务提供单元;每一待执行任务中进一步包括以下信息中的至少一种:任务标识、任务类型、任务模式、告警方式、服务调用方式、服务调用接口名称或服务调用URL;其中,服务调用方式包括HTTP拉取方式、HTTP推送方式或Socket访问方式。
为实现上述目的,根据本发明的另一方面,提供了一种任务调度***。
本发明实施例的任务调度***可包括:任务创建单元,用于存储用户创建的至少一个待执行任务;其中,每一待执行任务中含有触发条件和执行该任务所需服务的标识;服务治理单元,用于在预先建立的多个任务执行单元中,将负载量符合第一预设条件的任务执行单元确定为第一执行单元;并将所述待执行任务经第一执行单元发送到缓存单元进行存储;包括第二执行单元的多个任务执行单元,用于监测每一待执行任务的触发条件是否满足;其中,第二执行单元用于在监测到任一待执行任务的触发条件满足时,从缓存单元中获取该任务,并从服务提供单元中调用该任务所需的服务以执行该任务。
可选地,所述触发条件为时间触发条件;第一执行单元可进一步用于:在将所述待执行任务发送到缓存单元进行存储之后,根据每一待执行任务的时间触发条件确定其未来的每一触发时刻,并将得到的每一触发时刻存储在缓存单元;所述多个任务执行单元可进一步用于:监测当前时刻是否等于每一待执行任务的任一触发时刻。
可选地,每一待执行任务中进一步包括任务状态;第二执行单元可进一步用于:在所述从缓存单元中获取该任务之后,将该任务的任务状态更改为锁定状态;在任一待执行任务执行失败之后,以预设周期连续执行该任务直到执行成功,且在连续执行失败次数等于预设阈值时告警。
可选地,服务治理单元可进一步用于:在可提供触发条件满足的任务所需服务的多个服务提供单元中,将负载量符合第二预设条件的服务提供单元确定为第二执行单元调用的服务对应的服务提供单元;所述***可进一步包括数据库单元,用于存储所述待执行任务和每一待执行任务的触发时刻。
可选地,所述多个任务执行单元组成服务器集群;第一预设条件为:选取负载量最小的任务执行单元;第二预设条件为:选取负载量最小的服务提供单元;每一待执行任务进一步包括以下信息中的至少一种:任务标识、任务类型、任务模式、告警方式、服务调用方式、服务调用接口名称或服务调用URL;其中,服务调用方式包括:服务治理单元接口拉取方式、服务治理单元接口推送方式、HTTP拉取方式、HTTP推送方式或Socket访问方式。
为实现上述目的,根据本发明的再一方面,提供了一种计算机可读存储介质。
本发明的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明所提供的任务调度方法。
根据本发明的技术方案,上述发明中的一个实施例具有如下优点或有益效果:通过建立由多个任务执行单元组成的服务器集群来存储与执行任务,使***可在高并发访问的情况下保持高可靠性和高可用性,同时也可应对服务器掉电、网络故障等情况;通过服务治理单元的负载均衡策略,能够选择负载量较小的任务执行单元和服务提供单元来处理任务,从而避免引发***风险;为了提升***的易用性,本发明实施例的任务调度***在与服务提供单元交互时支持HTTP协议等通用访问方式;此外,现有的任务调度框架往往因数据库查询瓶颈限制难以大量并发获取任务信息,针对此问题,本发明在采用数据库存储任务信息的同时,利用高性能缓存单元存储任务信息,从而提升***性能与用户体验。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例中任务调度方法的主要步骤示意图;
图2是根据本发明实施例中服务治理单元的架构示意图;
图3是根据本发明第一实施例中任务调度方法的具体执行步骤示意图;
图4是根据本发明实施例中任务调度***的组成部分示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要指出的是,在不冲突的情况下,本发明的实施例以及实施例中的技术特征可以相互结合。
图1是根据本发明实施例中任务调度方法的主要步骤示意图。
如图1所示,本发明实施例的任务调度方法可具体按照如下步骤执行:
步骤S101:将用户创建的至少一个待执行任务经第一执行单元发送到缓存单元进行存储;其中,每一待执行任务中含有触发条件和执行该任务所需服务的标识;第一执行单元是预先建立的多个任务执行单元中,负载量符合第一预设条件的任务执行单元。
在本步骤中,任务指的是依赖于某种触发机制和某个软件组件的预设动作。例如,每月25号***自动还款、用户发出关机指令时自动保存文档进度均属于上述任务。其中,触发机制可以通过时间触发条件、动作触发条件等实现。例如,上述示例中的“每月25号”即为时间触发条件,“用户发出关机指令”即为动作触发条件。对于时间触发条件,在实际应用中,***可将自然语言描述的时间触发条件转换为时间表达式,进而根据时间表达式计算出未来的每一触发时刻。示例性地,时间表达式可为Cron表达式(Cron是Linux下的定时执行工具,Linux是一种开源操作***)。
在本发明实施例中,可向用户提供页面端的任务创建单元,使用户可在此创建一个或多个待执行任务。一般地,每一个待执行任务可配置有多种任务信息,例如任务标识、任务状态、触发条件、执行该任务所需服务的标识、任务类型、任务模式、告警方式、服务调用方式、服务调用接口名称或服务调用统一资源定位符URL(Uniform Resource Locator)以及任务自身参数。
其中,每一任务具有唯一的任务标识,用于与其它任务区分,具体应用中往往以任务名称作为任务标识;任务状态的选项有锁定状态和非锁定状态,其中,任务被执行时处于锁定状态,任务未被执行或被释放时处于非锁定状态;触发条件用于体现任务的触发机制,可以是时间触发条件或动作触发条件;任务所需服务的标识可以是该服务的名称,用于在服务调用过程中确定该服务;任务类型的选项有单机任务、分布式任务等,用于表征执行任务的主体为一个服务器还是分布式***;任务模式的选项有可并发执行、不可并发执行;告警方式可选择为短信告警或邮件告警,其进一步包括相应的发送短信地址或邮箱地址;任务自身参数是与具体业务相关的参数信息。
特别地,任一待执行服务还可配置服务调用方式以及服务调用接口名称或服务调用URL。具体而言,服务调用方式可选择为:HTTP拉取方式、HTTP推送方式或套接字Socket访问方式。其中,在HTTP拉取方式中,任务执行单元(将在后文中介绍)依据HTTP协议调用服务提供单元(将在后文中介绍)相关接口以实现服务调用;在HTTP推送方式中,服务提供单元依据HTTP协议访问任务执行单元的相关接口以实现服务调用;在Socket访问方式中,任务执行单元通过服务提供单元Socket绑定的互联网协议IP(Internet Protocol)地址和端口号与服务提供单元通信以调用服务。显然,如果服务调用方式为HTTP拉取方式,任务执行单元需获得服务提供单元的URL;如果服务调用方式为HTTP推送方式,服务提供单元需获得任务执行单元的URL;如果服务调用方式为Socket访问方式,任务执行单元需获得服务提供单元Socket绑定的IP地址和端口号。可以理解,支持HTTP协议可提升任务调度***的易用性。
此外,服务调用方式还可选择为:服务治理单元接口拉取方式或者服务治理单元接口推送方式。这两种方式均依赖于服务治理单元。在本发明实施例中,服务治理单元指的是用于实现远程过程调用协议RPC(Remote Procedure Call Protocol)调用方案的分布式服务框架。一般地,服务治理单元提供的是面向服务架构SOA(Service OrientedArchitecture)层面的服务治理方案。具体应用中,服务治理单元可使服务提供方和服务调用方直接交互以实现服务调用,还提供注册中心用于服务提供方的服务注册与服务调用方的服务发现,提供监控中心用于统计服务的调用次数和调用时间。
一种服务治理单元的架构可如图2所示。在图2中,服务调用流程可执行以下步骤:
步骤S201:服务容器启动,加载并运行服务提供方。
步骤S202:服务提供方启动,向注册中心注册自己提供的服务。
步骤S203:服务调用方启动,向注册中心订阅自己所需的服务。
步骤S204:注册中心将服务提供方的地址列表向服务调用方返回。如果上述地址列表有变更,注册中心将基于长连接将变更后的地址列表推送给服务调用方。
步骤S205:服务调用方基于软负载均衡算法,从上述地址列表中选择一台服务提供方进行调用。如果调用失败,更换另一台服务提供方继续调用。
步骤S206:服务提供方和服务调用方在内存中统计调用次数和调用时间,并定时发送到监控中心。
实际应用中,服务治理单元往往还提供跨编程语言调用、数据压缩、黑白名单、服务提供方动态分组等功能。示例性地,实际应用场景中的服务治理单元可以是Dubbo(一种开源服务框架),也可以是自行开发的具有上述功能的服务框架。
较佳地,在本发明实施例中,可利用上述服务治理单元实现任务执行单元和服务提供单元之间的服务调用。在此交互过程中,服务提供单元作为服务提供方,任务执行单元作为服务调用方,服务调用方式可选择服务治理单元接口拉取方式或服务治理单元接口推送方式。在服务治理单元接口拉取方式中,任务执行单元主动调用服务治理单元的专用接口拉取数据;在服务治理单元接口推送方式中,服务治理单元基于其专用接口向任务执行单元推送数据。一般地,在上述服务调用方式中,需要预先确定服务治理单元的专用接口的名称。
在步骤S101中,任务创建单元在存储用户创建的待执行任务之后,将待执行任务发送到服务治理单元,服务治理单元确定合适的任务执行单元,并将待执行任务发送到该任务执行单元。在此过程中,任务创建单元作为服务调用方,任务执行单元作为服务提供方。特别地,任务执行单元是用来存储、执行任务的服务器。在本发明实施例中,可预先设置多个任务执行单元组成服务器集群来负责任务的存储和具体执行,从而使***可在高并发访问的情况下保持高可靠性和高可用性,同时也可应对服务器掉电、网络故障等情况。
具体应用中,服务治理单元在多个任务执行单元中选取负载量符合第一预设条件者作为第一执行单元,将待执行任务发送到第一执行单元。其中,负载量可以根据每一任务执行单元当前的访问请求处理数量、服务调用数量或者中央处理器CPU(CentralProcessing Unit)、内存、磁盘的利用情况来确定。第一预设条件可以是“选取负载量最小的任务执行单元”。这样,通过服务治理单元的上述负载均衡策略,本发明能够选择负载量最小的任务执行单元来存储和执行任务,从而避免引发***风险。可以理解的是,第一预设条件可根据业务需要灵活设置,并不限于上述内容。
接收到待执行任务之后,第一执行单元可将其发送到缓存单元和数据库单元进行存储。较佳地,缓存单元可以是缓存服务器,数据库单元可以是数据库服务器。为了提高数据读写性能,缓存单元与数据库单元均可使用服务器集群来存储任务。之后,第一执行单元可将每一待执行任务的时间触发条件对应的时间表达式转换为消息,发布在消息队列,并在预设的较短时长之后(如一秒钟)之后消费该消息,根据该消息中的时间表达式计算待执行任务未来的每一触发时刻,并将得到的触发时刻存储在缓存单元和数据库单元。在具体应用场景中,缓存单元和数据库单元可以按照时间先后顺序存储每一触发时刻及其相应的任务信息,这有助于提升执行任务的准确性。可以理解,利用消息队列来实现任务触发时刻的异步计算可以提升***响应性能和用户体验。
步骤S102:监测每一待执行任务的触发条件是否满足;在任一待执行任务的触发条件满足时,利用多个任务执行单元中的第二执行单元从缓存单元中获取该任务,并从服务提供单元中调用该任务所需的服务以执行该任务。
在本步骤中,任务执行单元监测当前时刻是否等于每一待执行任务的任一触发时刻。在监测到某一任务的触发时刻到达时,所有的任务执行单元可尝试从缓存单元中拉取该任务,最先拉取成功的任务执行单元即为第二执行单元。一般来说,第二执行单元可以是上述第一执行单元。第二执行单元拉取该任务后,将其任务状态更改为锁定状态,由此避免该任务被其它任务执行单元重复执行。可以理解的是,第二执行单元更改任务状态之前,该任务的任务状态为非锁定状态。
第二执行单元拉取任务成功之后,即可从服务提供单元中调用该任务所需的服务以执行该任务。显然,第二执行单元可根据任务中配置的服务标识来确定所需服务。实际应用中,存在多个可提供相应服务的服务提供单元,为了提升***性能,可从中选取较为合适的服务提供单元来调用服务。基于上述考虑,可利用服务治理单元选取负载量符合第二预设条件的服务提供单元。其中,第二预设条件可根据应用环境进行设置,如设置为“选取负载量最小的服务提供单元”。这样,本发明可通过服务治理单元提供的负载均衡策略,实现服务提供单元的合理选取,从而避免引发***风险。
此外,作为一个优选方案,第二执行单元在任一待执行任务执行失败之后,可以按照预设周期连续执行该任务直到执行成功,并且在连续执行失败次数等于预设阈值时按照配置的告警方式进行告警。经过上述设置,可确保***不会遗漏每一待执行任务。此外,为了保证任务执行顺序的精确性,在任务执行单元实现高精度、高可用的时钟机制,能够以毫秒为单位监测任务的触发时刻。
图3是根据本发明第一实施例中任务调度方法的具体执行步骤示意图。如图3所示,任务调度方法的具体执行步骤如下:
步骤S301:任务创建单元存储用户创建的待执行任务。
步骤S302:任务创建单元将待执行任务发送到服务治理单元。
步骤S303:服务治理单元从任务执行单元中确定第一执行单元。一般地,第一执行单元为其中负载量最小的任务执行单元。
步骤S304:服务治理单元将待执行任务发送到第一执行单元。
步骤S305:第一执行单元将待执行任务发送到缓存单元和数据库单元进行存储。
步骤S306:第一执行单元将根据待执行任务的时间触发条件得到的时间表达式转换为消息。本步骤可实现任务触发时刻的异步计算。
步骤S307:第一执行单元将转换得到的消息发布到消息队列。
步骤S308:第一执行单元从消息队列消费该消息。
步骤S309:第一执行单元利用该消息中的时间表达式计算待执行任务的每一触发时刻。
步骤S310:第一执行单元将得到的触发时刻存储在缓存单元和数据库单元。经过以上步骤,完成待执行任务在缓存单元和数据库单元的存储。
步骤S311:任务执行单元监测待执行任务的触发时刻。
步骤S312:任务执行单元判断当前时刻是否等于触发时刻:若是,执行下一步骤;否则返回上一步骤。
步骤S313:监测到触发时刻到达时,第二执行单元从缓存单元获取相应任务。
步骤S314:第二执行单元将任务状态更改为锁定状态,以避免任务被多次执行。
步骤S315:第二执行单元通过服务治理单元确定合适的服务提供单元以调用任务所需服务。一般地,该服务提供单元为负载量最小的服务提供单元。
步骤S316:第二执行单元根据调用的服务执行任务,从而完成任务调度的整个流程。
在本发明实施例的技术方案中,可建立由多个任务执行单元组成的服务器集群来存储与执行任务,从而使***可在高并发访问的情况下保持高可靠性和高可用性,同时也可应对服务器掉电、网络故障等情况。之外,通过服务治理单元的负载均衡策略,能够选择负载量较小的任务执行单元和服务提供单元来处理任务,从而避免引发***风险。
需要说明的是,对于前述的各方法实施例,为了便于描述,将其表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,某些步骤事实上可以采用其它顺序进行或者同时进行。此外,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是实现本发明所必须的。
为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关***。
请参阅图3所示,本发明实施例提供的一种任务调度***400可以包括:任务创建单元401,服务治理单元402,由多个任务执行单元403、404、405、406组成的服务器集群407,缓存单元408和数据库单元409。可以理解,服务器集群407中的四个任务执行单元仅为示例,实际应用中可以根据需要设置具有各种数量的任务执行单元的服务器集群。
具体地,任务创建单元401可用于存储用户创建的至少一个待执行任务;其中,每一待执行任务中含有触发条件和执行该任务所需服务的标识。
服务治理单元402可用于在预先建立的多个任务执行单元中,将负载量符合第一预设条件的任务执行单元确定为第一执行单元;并将所述待执行任务经第一执行单元发送到缓存单元408进行存储。
多个任务执行单元403、404、405、406,用于监测每一待执行任务的触发条件是否满足;其中,第二执行单元用于在监测到任一待执行任务的触发条件满足时,从缓存单元408中获取该任务,并从服务提供单元410中调用该任务所需的服务以执行该任务。
作为一个优选方案,所述触发条件为时间触发条件。第一执行单元可进一步用于:在将所述待执行任务发送到缓存单元408进行存储之后,根据每一待执行任务的时间触发条件确定其未来的每一触发时刻,并将得到的每一触发时刻存储在缓存单元408。所述多个任务执行单元403、404、405、406可进一步用于:监测当前时刻是否等于每一待执行任务的任一触发时刻。
较佳地,在本发明实施例中,每一待执行任务中进一步包括任务状态。第二执行单元可进一步用于:在所述从缓存单元408中获取该任务之后,将该任务的任务状态更改为锁定状态;在任一待执行任务执行失败之后,以预设周期连续执行该任务直到执行成功,且在连续执行失败次数等于预设阈值时告警。
具体应用中,服务治理单元402可进一步用于:在可提供触发条件满足的任务所需服务的多个服务提供单元中,将负载量符合第二预设条件的服务提供单元410确定为第二执行单元调用的服务对应的服务提供单元。数据库单元409可用于存储所述待执行任务和每一待执行任务的触发时刻。
此外,在本发明实施例中,第一预设条件为:选取负载量最小的任务执行单元;第二预设条件为:选取负载量最小的服务提供单元;每一待执行任务进一步包括以下信息中的至少一种:任务标识、任务类型、任务模式、告警方式、服务调用方式、服务调用接口名称或服务调用URL;其中,服务调用方式包括:服务治理单元接口拉取方式、服务治理单元接口推送方式、HTTP拉取方式、HTTP推送方式或Socket访问方式。
在本发明实施例的技术方案中,可建立由多个任务执行单元组成的服务器集群来存储与执行任务,从而使***可在高并发访问的情况下保持高可靠性和高可用性,同时也可应对服务器掉电、网络故障等情况。之外,通过服务治理单元的负载均衡策略,能够选择负载量较小的任务执行单元和服务提供单元来处理任务,从而避免引发***风险。
此外,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的任务调度***中所包含的。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该设备执行时,使得该设备执行的步骤包括:将用户创建的至少一个待执行任务经第一执行单元发送到缓存单元进行存储;其中,每一待执行任务中含有触发条件和执行该任务所需服务的标识;第一执行单元是预先建立的多个任务执行单元中,负载量符合第一预设条件的任务执行单元;监测每一待执行任务的触发条件是否满足;在任一待执行任务的触发条件满足时,利用所述多个任务执行单元中的第二执行单元从缓存单元中获取该任务,并从服务提供单元中调用该任务所需的服务以执行该任务。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种任务调度方法,其特征在于,包括:
将用户创建的至少一个待执行任务经第一执行单元发送到缓存单元进行存储;其中,每一待执行任务中含有触发条件和执行该任务所需服务的标识;第一执行单元是预先建立的多个任务执行单元中,负载量符合第一预设条件的任务执行单元;
监测每一待执行任务的触发条件是否满足;在任一待执行任务的触发条件满足时,利用所述多个任务执行单元中的第二执行单元从缓存单元中获取该任务,并从服务提供单元中调用该任务所需的服务以执行该任务。
2.根据权利要求1所述的方法,其特征在于,所述触发条件为时间触发条件;所述方法进一步包括:
在将待执行任务发送到缓存单元进行存储之后:针对每一待执行任务,由第一执行单元根据该任务的时间触发条件确定其未来的每一触发时刻,并将得到的每一触发时刻存储在缓存单元;以及
所述监测每一待执行任务的触发条件是否满足,具体包括:监测当前时刻是否等于每一待执行任务的任一触发时刻。
3.根据权利要求1所述的方法,其特征在于,所述服务提供单元为:在可提供触发条件满足的任务所需服务的多个服务提供单元中,负载量符合第二预设条件的服务提供单元;每一待执行任务中进一步包括任务状态;以及
所述方法进一步包括:在所述利用所述多个任务执行单元中的第二执行单元从缓存单元中获取该任务之后,将该任务的任务状态更改为锁定状态;在任一待执行任务执行失败之后,以预设周期连续执行该任务直到执行成功,且在连续执行失败次数等于预设阈值时告警。
4.根据权利要求3所述的方法,其特征在于,
所述多个任务执行单元组成服务器集群;
第一预设条件为:选取负载量最小的任务执行单元;
第二预设条件为:选取负载量最小的服务提供单元;
每一待执行任务中进一步包括以下信息中的至少一种:任务标识、任务类型、任务模式、告警方式、服务调用方式、服务调用接口名称或服务调用URL;其中,服务调用方式包括HTTP拉取方式、HTTP推送方式或Socket访问方式。
5.一种任务调度***,其特征在于,包括:
任务创建单元,用于存储用户创建的至少一个待执行任务;其中,每一待执行任务中含有触发条件和执行该任务所需服务的标识;
服务治理单元,用于在预先建立的多个任务执行单元中,将负载量符合第一预设条件的任务执行单元确定为第一执行单元;并将所述待执行任务经第一执行单元发送到缓存单元进行存储;以及
包括第二执行单元的多个任务执行单元,用于监测每一待执行任务的触发条件是否满足;其中,第二执行单元用于在监测到任一待执行任务的触发条件满足时,从缓存单元中获取该任务,并从服务提供单元中调用该任务所需的服务以执行该任务。
6.根据权利要求5所述的***,其特征在于,所述触发条件为时间触发条件;第一执行单元进一步用于:
在将所述待执行任务发送到缓存单元进行存储之后,根据每一待执行任务的时间触发条件确定其未来的每一触发时刻,并将得到的每一触发时刻存储在缓存单元;以及
所述多个任务执行单元进一步用于:监测当前时刻是否等于每一待执行任务的任一触发时刻。
7.根据权利要求5所述的***,其特征在于,每一待执行任务中进一步包括任务状态;以及,第二执行单元进一步用于:
在所述从缓存单元中获取该任务之后,将该任务的任务状态更改为锁定状态;在任一待执行任务执行失败之后,以预设周期连续执行该任务直到执行成功,且在连续执行失败次数等于预设阈值时告警。
8.根据权利要求6所述的***,其特征在于,
服务治理单元进一步用于:在可提供触发条件满足的任务所需服务的多个服务提供单元中,将负载量符合第二预设条件的服务提供单元确定为第二执行单元调用的服务对应的服务提供单元;以及
所述***进一步包括数据库单元,用于存储所述待执行任务和每一待执行任务的触发时刻。
9.根据权利要求8所述的***,其特征在于,
所述多个任务执行单元组成服务器集群;
第一预设条件为:选取负载量最小的任务执行单元;
第二预设条件为:选取负载量最小的服务提供单元;
每一待执行任务进一步包括以下信息中的至少一种:任务标识、任务类型、任务模式、告警方式、服务调用方式、服务调用接口名称或服务调用URL;其中,服务调用方式包括:服务治理单元接口拉取方式、服务治理单元接口推送方式、HTTP拉取方式、HTTP推送方式或Socket访问方式。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-4中任一所述的方法。
CN201810872439.1A 2018-08-02 2018-08-02 任务调度方法和*** Active CN108984290B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810872439.1A CN108984290B (zh) 2018-08-02 2018-08-02 任务调度方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810872439.1A CN108984290B (zh) 2018-08-02 2018-08-02 任务调度方法和***

Publications (2)

Publication Number Publication Date
CN108984290A true CN108984290A (zh) 2018-12-11
CN108984290B CN108984290B (zh) 2021-03-30

Family

ID=64554409

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810872439.1A Active CN108984290B (zh) 2018-08-02 2018-08-02 任务调度方法和***

Country Status (1)

Country Link
CN (1) CN108984290B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110018893A (zh) * 2019-03-12 2019-07-16 平安普惠企业管理有限公司 一种基于数据处理的任务调度方法及相关设备
CN110225082A (zh) * 2019-04-30 2019-09-10 北京奇艺世纪科技有限公司 任务处理方法、装置、电子设备和计算机可读介质
CN111767125A (zh) * 2020-06-15 2020-10-13 杭州数梦工场科技有限公司 任务执行方法、装置、电子设备、存储介质
CN117933949A (zh) * 2024-03-22 2024-04-26 广东电网有限责任公司中山供电局 保供电工单的执行方法、装置、存储介质和处理器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106569878A (zh) * 2015-10-08 2017-04-19 北京奇虎科技有限公司 一种分布式定时任务管理方法和***
EP3226173A1 (en) * 2016-03-30 2017-10-04 Fujitsu Limited Task circumstance processing device and method
CN107657155A (zh) * 2016-07-26 2018-02-02 北京京东尚科信息技术有限公司 用于鉴定用户操作权限的方法和装置
US20180107508A1 (en) * 2016-10-18 2018-04-19 International Business Machines Corporation Resource allocation for tasks of unknown complexity
CN108132833A (zh) * 2017-12-08 2018-06-08 广州视源电子科技股份有限公司 一种基于zookeeper技术的分布式定时任务调度方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106569878A (zh) * 2015-10-08 2017-04-19 北京奇虎科技有限公司 一种分布式定时任务管理方法和***
EP3226173A1 (en) * 2016-03-30 2017-10-04 Fujitsu Limited Task circumstance processing device and method
CN107657155A (zh) * 2016-07-26 2018-02-02 北京京东尚科信息技术有限公司 用于鉴定用户操作权限的方法和装置
US20180107508A1 (en) * 2016-10-18 2018-04-19 International Business Machines Corporation Resource allocation for tasks of unknown complexity
CN108132833A (zh) * 2017-12-08 2018-06-08 广州视源电子科技股份有限公司 一种基于zookeeper技术的分布式定时任务调度方法和装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110018893A (zh) * 2019-03-12 2019-07-16 平安普惠企业管理有限公司 一种基于数据处理的任务调度方法及相关设备
WO2020181813A1 (zh) * 2019-03-12 2020-09-17 平安普惠企业管理有限公司 一种基于数据处理的任务调度方法及相关设备
CN110225082A (zh) * 2019-04-30 2019-09-10 北京奇艺世纪科技有限公司 任务处理方法、装置、电子设备和计算机可读介质
CN110225082B (zh) * 2019-04-30 2021-12-10 北京奇艺世纪科技有限公司 任务处理方法、装置、电子设备和计算机可读介质
CN111767125A (zh) * 2020-06-15 2020-10-13 杭州数梦工场科技有限公司 任务执行方法、装置、电子设备、存储介质
CN111767125B (zh) * 2020-06-15 2023-07-25 杭州数梦工场科技有限公司 任务执行方法、装置、电子设备、存储介质
CN117933949A (zh) * 2024-03-22 2024-04-26 广东电网有限责任公司中山供电局 保供电工单的执行方法、装置、存储介质和处理器

Also Published As

Publication number Publication date
CN108984290B (zh) 2021-03-30

Similar Documents

Publication Publication Date Title
CN105190555B (zh) 集中式任务调度
CN108984290A (zh) 任务调度方法和***
US8700413B2 (en) Web services registration for dynamic composition of web services
CN112162865B (zh) 服务器的调度方法、装置和服务器
CN103927225B (zh) 一种多核心架构的互联网信息处理优化方法
US11080090B2 (en) Method and system for scalable job processing
CN108449410A (zh) 一种云平台中消息管理方法、***及相关装置
CN111338791A (zh) 集群队列资源的调度方法、装置、设备及存储介质
US9104488B2 (en) Support server for redirecting task results to a wake-up server
US11228658B1 (en) Pre-caching data for use upon execution of program code
WO2021159831A1 (zh) 编程平台的用户代码运行方法及平台、节点、设备、介质
CN116541134B (zh) 多架构集群中容器的部署方法及装置
US9430293B2 (en) Deterministic real time business application processing in a service-oriented architecture
CN112199353A (zh) 一种数据处理方法及电力客户服务平台
US20160019089A1 (en) Method and system for scheduling computing
CN107066339A (zh) 分布式作业管理器及分布式作业管理方法
US7783499B2 (en) Framework for dynamic composition of web services
US8694462B2 (en) Scale-out system to acquire event data
CN114615340A (zh) 一种请求处理方法、装置、计算机设备和存储装置
CN103605575A (zh) 一种Cloud Foundry平台应用调度***及方法
CN103186536A (zh) 一种调度数据共享装置的方法及***
CN112948088B (zh) 一种云计算平台中的云工作流智能管理与调度***
CN111625344B (zh) 应用***中的资源调度***、方法及装置
CN111488373A (zh) 用于处理请求的方法和***
CN113190624A (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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 101111 Room 221, 2nd Floor, Block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone

Patentee after: Jingdong Technology Holding Co.,Ltd.

Address before: 101111 Room 221, 2nd Floor, Block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone

Patentee before: Jingdong Digital Technology Holding Co.,Ltd.

Address after: 101111 Room 221, 2nd Floor, Block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone

Patentee after: Jingdong Digital Technology Holding Co.,Ltd.

Address before: 101111 Room 221, 2nd Floor, Block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone

Patentee before: JINGDONG DIGITAL TECHNOLOGY HOLDINGS Co.,Ltd.

Address after: 101111 Room 221, 2nd Floor, Block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone

Patentee after: JINGDONG DIGITAL TECHNOLOGY HOLDINGS Co.,Ltd.

Address before: 101111 Room 221, 2nd Floor, Block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone

Patentee before: BEIJING JINGDONG FINANCIAL TECHNOLOGY HOLDING Co.,Ltd.