CN114942833A - 定时任务资源动态调度方法及相关装置 - Google Patents

定时任务资源动态调度方法及相关装置 Download PDF

Info

Publication number
CN114942833A
CN114942833A CN202210334280.4A CN202210334280A CN114942833A CN 114942833 A CN114942833 A CN 114942833A CN 202210334280 A CN202210334280 A CN 202210334280A CN 114942833 A CN114942833 A CN 114942833A
Authority
CN
China
Prior art keywords
fragmentation
task
processing
service container
resources
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.)
Pending
Application number
CN202210334280.4A
Other languages
English (en)
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.)
China Life Insurance Co ltd
Original Assignee
China Life Insurance 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 China Life Insurance Co ltd filed Critical China Life Insurance Co ltd
Priority to CN202210334280.4A priority Critical patent/CN114942833A/zh
Publication of CN114942833A publication Critical patent/CN114942833A/zh
Pending legal-status Critical Current

Links

Images

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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5038Allocation 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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供一种定时任务资源动态调度方法及相关设备,其中,所述方法包括:首先获取处理定时任务的第一处理速率,当第一处理速率小于预设的速率时对分片资源重新进行分配,并将得到的分片策略发送给注册中心,通过注册中心对微服务容器进行分片,从而使微服务容器对定时任务进行处理,以达到预设的速率。使得在处理定时任务的过程中可以按需调整分片资源,实时生效,无需重启微服务容器的微服务,并且可以通过多次调整达到资源利用最优化。

Description

定时任务资源动态调度方法及相关装置
技术领域
本申请涉及数据处理技术领域,尤其涉及一种定时任务资源动态调度方法及相关装置。
背景技术
Elastic-Job是ddframe中dd-job的作业模块中分离出来的分布式弹性作业框架,该框架的分片(一个分片代表一个线程)原理可水平切分总体任务为多个子任务,并调度到不同节点执行,从而最大限度的利用资源。Elastic-Job consol为该框架提供的监控模块,可支持基础的作业监控功能。Elastic-Job可以解决资源分配问题,但是无法支持动态调配资源,在业务高峰期需调整分片后重启服务器,降低了解决问题的实效。
基于此,需要一种定时任务资源动态调度方法以满足业务高峰期的处理需求。
发明内容
有鉴于此,本申请的目的在于提出一种定时任务资源动态调度方法及相关设备。
基于上述目的,本申请提供了定时任务资源动态调度方法,包括:
获取任务队列中的定时任务的第一处理速率;其中,所述定时任务在微服务容器上进行处理;
响应于确定所述第一处理速率小于预设的速率,为所述任务队列重新分配分片资源,得到分片策略;
将所述分片策略发送给注册中心,以使所述注册中心根据所述分片策略对所述微服务容器进行分片;
在分片后的所述微服务容器上对所述定时任务进行处理。
进一步的,所述方法还包括:
获取在分片后的所述微服务容器上对所述定时任务进行处理的第二处理速率;
响应于确定所述第二处理速率小于预设的速率,为所述任务队列分配新的微服务容器,以使所述任务队列中的所述定时任务同时被所述微服务容器和所述新的微服务容器处理。
进一步的,所述为所述任务队列重新分配分片资源,得到分片策略,包括:
获取所述任务队列的识别码,根据所述第一处理速率确定分片总数;
根据哈希算法对所述识别码和所述分片总数进行计算,得到所述任务队列对应的微服务容器的分片项;根据所述分片总数和所述分片项得到所述分片策略。
进一步的,所述根据哈希算法对所述识别码和所述分片总数进行计算,得到所述任务队列对应的微服务容器的分片项;根据所述分片总数和所述分片项得到所述分片策略,包括:
获取当前可用的微服务容器,将全部所述分片资源进行编号;
根据负载均衡的原则为全部所述可用的微服务容器分配全部所述分片资源;
将所述识别码除以所述分片总数得到所述分片项;
根据所述分片资源的编号和所述分片项得到所述分片策略,所述策略包括:将与所述分片项的数值相等的分片资源编号对应的分片资源所在的微服务容器作为处理所述定时任务的微服务容器。
进一步的,所述第一处理速率通过Elastic-Job作业监控获取。
进一步的,所述获取任务队列中的定时任务的第一处理速率,包括:
通过所述Elastic-Job作业监控获取所述任务队列中已经处理完的定时任务的数量和处理占用的时间;
根据所述已经处理完的定时任务的数量和处理占用的时间得到所述第一处理速率。
进一步的,所述方法在技术栈HALO框架中运行,所述注册中心的配置通过Oceanbase数据库存储。
基于同一构思,本申请还提供了一种定时任务资源动态调度装置,其特征在于,包括:
获取模块,被配置为获取任务队列中的定时任务的第一处理速率;其中,所述定时任务在微服务容器上进行处理;
计算模块,被配置为响应于确定所述第一处理速率小于预设的速率,为所述任务队列重新分配分片资源,得到分片策略;
分配模块,被配置为将所述分片策略发送给注册中心,以使所述注册中心根据所述分片策略对所述微服务容器进行分片;
处理模块,被配置为在分片后的所述微服务容器上对所述定时任务进行处理。
基于同一构思,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任一项所述的方法。
基于同一构思,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机实现如上任一项所述的方法。
从上面所述可以看出,本申请提供的定时任务资源动态调度方法,首先获取处理定时任务的第一处理速率,当第一处理速率小于预设的速率时对分片资源重新进行分配,并将得到的分片策略发送给注册中心,通过注册中心对微服务容器进行分片,从而使微服务容器对定时任务进行处理,以达到预设的速率。使得在处理定时任务的过程中可以按需调整分片资源,实时生效,无需重启微服务容器的微服务,并且可以通过多次调整达到资源利用最优化。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的定时任务资源动态调度方法流程图;
图2为本申请实施例的任务监控平台物理结构图示意图;
图3为本申请实施例的分配分片资源方法流程图;
图4为本申请实施例的根据哈希算法对所述识别码和所述分片总数进行计算方法流程图;
图5为本申请实施例的任务资源动态调度装置结构示意图;
图6为本申请实施例的电子设备结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
如背景技术部分所述,相关的定时任务资源动态调度方法还难以满足实际业务处理过程的需要。
申请人在实现本申请的过程中发现,Elastic-Job console为Elastic-Job官方提供的运维平台,该平台可以读取作业注册中心展现作业状态,实现Elastic-Job作业的基础管理,如修改作业配置、作业启停、事件追踪查询等。但是在Elastic-Job官方提供的运维平台的使用过程中,有以下两个缺陷:
1、其技术栈与一些框架的使用要求不相符,官网Elastic-Job consol运维平台基于spring boot单体结构,数据库上支持mysql;当采用自研的halo框架,微服务使用服务网格,数据库采用Oceanbase等时,该运维平台无法直接投入使用。
2、其功能不能满足动态资源调配,官网Elastic-Job consol运维平台只能展现作业作业的运行状态或者更新注册中心数据,无法与现有系统配合进行作业监控和资源的动态调度。
因此,团险销售人员在管理系统Elastic-Job框架做定时任务时会面对无作业监控的问题。主要表现为:1)事后资源调配,业务高峰期依赖于分公司操作时上报;2)资源调整过程繁琐,非实时生效,调整资源后,需要重新发布版本,周期长、成本高。
有鉴于此,本申请的一个或多个实施例提供了一种定时任务资源动态调度方案,首先获取处理定时任务的第一处理速率,当第一处理速率小于预设的速率时对分片资源重新进行分配,并将得到的分片策略发送给注册中心,通过注册中心对微服务容器进行分片,从而使微服务容器对定时任务进行处理,以达到预设的速率。使得在处理定时任务的过程中可以按需调整分片资源,实时生效,无需重启微服务容器的微服务,并且可以通过多次调整达到资源利用最优化。
参考图1,本申请的实施例的定时任务资源动态调度方法,包括以下步骤:
步骤S101、获取任务队列中的定时任务的第一处理速率;其中,所述定时任务在微服务容器上进行处理;
在本实施例中,定时任务资源动态调度方法可以在任意任务监控平台上实施。作为一个具体的实施场景,在Elastic-Job consol运维平台基础上进行改造,复用其注册中心数据展现、修改注册中心配置功能。在技术栈上采用halo框架,通过halo框架实现微服务管理,采用Oceanbase数据库存储注册中心配置,并可直接访问定时任务的执行数据。
参考图2,为本申请实施例的一个具体实施场景的任务监控平台物理结构图,实时任务请求从请求入口输入负载均衡设备F5,根据请求将流量转发给相关应用。网格网关为多元微服务建通信的基础设施层,网格网关用于请求转发。网格网关将请求转发给处理实时任务的微服务容器,微服务容器是微服务运行的载体,一个微服务实例在一个微服务容器上运行。不同的微服务容器中运行着不同的微服务,在图2中以微服务1和微服务2为例。通过Elastic-Job作业监控微服务的运行情况。注册中心Zookeeper保存了elastic-job的分片策略,通过注册中心进行对实时任务进行调度。Oceanbase数据库存储注册中心配置,并可直接访问定时任务的执行数据,实现定时任务执行数据的读取和使用。
在本实施例中,通过Elastic-Job作业监控获取所述第一处理速率。
步骤S102、响应于确定所述第一处理速率小于预设的速率,为所述任务队列重新分配分片资源,得到分片策略;
在本步骤中,不同的作业,即对于不同情况下的定时任务有不同的预设的速率,该预设的速率为经验值,主要通过人工参考经验值判断,在本实施例中不做限定。当所述第一处理速率小于预设的速率时,表明目前是业务高峰期,微服务容器的微服务处理速率达不到处理更多定时任务的要求,因此需要为定时任务所在的任务队列重新分配更多的分片资源,通过重新分配分片资源得到的分片策略重新对微服务容器进行分片,以满足处理定时任务的速率的要求。
在本实施例中,分片资源是线程级别,微服务的数量是进程级别的,当增加线程级别达不到理想处理速率,需要调整进程数量。作业监控可以动态调整线程,无法调整进程,但是可以评估是否需要增加进程。
步骤S103、将所述分片策略发送给注册中心,以使所述注册中心根据所述分片策略对所述微服务容器进行分片;
在本步骤中,注册中心用于保存分片策略,微服务容器上的微服务是注册到注册中心上的,需要通过注册中心进行对实时任务进行调度。
步骤S104、在分片后的所述微服务容器上对所述定时任务进行处理。
在本步骤中,调度过后的分片资源继续对定时任务进行处理。
需要说明的是,在一些实施场景中,本实施例还可以以下方式进一步描述:
a)、根据通过Elastic-Job作业监控查看作业(定时任务)的执行情况;
b)、给资源紧张省份增加分片资源,调整分片总数和分片项;
本步骤中,省份是任务队列的一个具体的示例,一个省份对应于一个任务队列,该省份的定时任务则在该任务队列中。给资源紧张的省份增加分片数量达到增加处理能力的目的。通过批作业监控修改分片数量,分片修改后会回写注册中心,elastic-job在作业处理完毕下次分片的时候会重新读取注册中心的分片,达到资源分配的目的。
c)、将调整的分片结果通过Elastic-Job回写至注册中心,Elastic-Job感知配置变化,将新的分片分发给已注册到注册中心的微服务;
d)、通过Elastic-Job观察作业执行情况,
从上面所述可以看出,本申请实施例的定时任务资源动态调度方法,通过Elastic-Job作业监控提前感知作业执行情况,按需调整分片资源,实时生效,无需重启微服务,可以多次调整达到资源利用最优化。
在另外一些实施例中,对于前述实施例中所述的方法,其还可以包括:
获取在分片后的所述微服务容器上对所述定时任务进行处理的第二处理速率;
响应于确定所述第二处理速率小于预设的速率,为所述任务队列分配新的微服务容器,以使所述任务队列中的所述定时任务同时被所述微服务容器和所述新的微服务容器处理。
在本实施例中,通过Elastic-Job观察作业执行情况,在调整完分片数量后定时任务的处理速率仍然较低,可增加微服务容器数量进一步增加定时任务的处理速率。
在另外一些实施例中,参考图3,对于前述实施例中所述的为所述任务队列重新分配分片资源,得到分片策略,其还可以包括:
步骤S301、获取所述任务队列的识别码,根据所述第一处理速率确定分片总数;
在本步骤中,分片总数需要通过第一处理速率和预设的速率进行确定,如果第一处理速率和预设的速率相差较大,可以对分片总数增加到较多的水平,反之,如果第一处理速率和预设的速率相差较少,则可以对分片总数增加较少的数量即可满足定时任务的处理需求。
作为一个具体的示例,第一处理速率为100件/s,预设的速率为200件/s,则可以将原分片总数乘以预设的速率和第一处理速率的比值,即将原分片总数乘以2,将该数量作为分片总数。
步骤S302、根据哈希算法对所述识别码和所述分片总数进行计算,得到所述任务队列对应的微服务容器的分片项;根据所述分片总数和所述分片项得到所述分片策略。
对于本实施例的步骤S302,参考图4,其还可以具体包括:
步骤S401、获取当前可用的微服务容器,将全部所述分片资源进行编号;
步骤S402、根据负载均衡的原则为全部所述可用的微服务容器分配全部所述分片资源;
步骤S403、将所述识别码除以所述分片总数得到所述分片项;
步骤S404、根据所述分片资源的编号和所述分片项得到所述分片策略,所述策略包括:将与所述分片项的数值相等的分片资源编号对应的分片资源所在的微服务容器作为处理所述定时任务的微服务容器。
在本实施例中,任务队列的识别码通常为字符串或者数字。例如有三个微服务容器:3台微服务容器器,分成9片,则每台微服务容器分到的分片是:1=[0,1,2],2=[3,4,5],3=[6,7,8]。作业任务ID为27,分片项为:27/9=3,由于第3片在微服务容器2中,因此该任务分配给微服务容器2执行。
下面给出一个本实施例的具体实施场景,实际应用中有A任务队列,通过Elastic-job监控发现A任务队列的定时任务执行速度低于经验值。有3台微服务容器,分成8片,则每台微服务容器分到的分片是:1=[0,1,6],2=[2,3,7],3=[4,5]。可以增加至10分片项1=[0,1,2,9],2=[3,4,5],3=[6,7,8]。Elastic-job监控将新的分片策略回写至注册中心,Elastic-job在注册中心读取新的分片策略,进行任务调度。
在另外一些实施例中,对于前述实施例中所述的获取任务队列中的定时任务的第一处理速率,包括:
通过所述Elastic-Job作业监控获取所述任务队列中已经处理完的定时任务的数量和处理占用的时间;
根据所述已经处理完的定时任务的数量和处理占用的时间得到所述第一处理速率。
在本实施例中,首先获取任务队列中已经处理完的定时任务的数量m和处理占用的时间t,之后通过将任务队列中已经处理完的定时任务的数量m除以处理占用的时间t,即可得到第一处理速率。
在另外一些实施例中,对于前述实施例中所述的方法,其在技术栈HALO框架中运行,所述注册中心的配置通过Oceanbase数据库存储。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种任务资源动态调度装置。
参考图5,所述任务资源动态调度装置,包括:
获取模块501,被配置为获取任务队列中的定时任务的第一处理速率;其中,所述定时任务在微服务容器上进行处理;
计算模块502,被配置为响应于确定所述第一处理速率小于预设的速率,为所述任务队列重新分配分片资源,得到分片策略;
在本模块中,不同的作业,及对于不同情况下的定时任务有不同的预设的速率,该预设的速率为经验值,主要通过人工参考经验值判断,在本实施例中不做限定。当所述第一处理速率小于预设的速率时,表明目前是业务高峰期,微服务容器的微服务处理速率达不到处理更多定时任务的要求,因此需要为定时任务所在的任务队列重新分配更多的分片资源,通过重新分配分片资源得到的分片策略重新对微服务容器进行分片,以满足处理定时任务的速率的要求。
在本模块中,分片资源是线程级别,微服务的数量是进程级别的,当增加线程级别达不到理想处理速率,需要调整进程数量。作业监控可以动态调整线程,无法调整进程,但是可以评估是否需要增加进程。
分配模块503,被配置为将所述分片策略发送给注册中心,以使所述注册中心根据所述分片策略对所述微服务容器进行分片;
在本模块中,注册中心用于保存分片策略,微服务容器上的微服务是注册到注册中心上的,需要通过注册中心进行对实时任务进行调度。
处理模块504,被配置为在分片后的所述微服务容器上对所述定时任务进行处理。
从上面所述可以看出,本申请实施例的定时任务资源动态调度装置,按需调整分片资源,实时生效,无需重启微服务,可以多次调整达到资源利用最优化。
在另外一些实施例中,所述任务资源动态调度装置还包括再处理模块505,所述再处理模块505被配置为:
获取在分片后的所述微服务容器上对所述定时任务进行处理的第二处理速率;
响应于确定所述第二处理速率小于预设的速率,为所述任务队列分配新的微服务容器,以使所述任务队列中的所述定时任务同时被所述微服务容器和所述新的微服务容器处理。
在本实施例中,通过Elastic-Job观察作业执行情况,在调整完分片数量后定时任务的处理速率仍然较低,可增加微服务容器数量进一步增加定时任务的处理速率。
在另外一些实施例中,计算模块502,还被配置为:
获取所述任务队列的识别码,根据所述第一处理速率确定分片总数;
根据哈希算法对所述识别码和所述分片总数进行计算,得到所述任务队列对应的微服务容器的分片项;根据所述分片总数和所述分片项得到所述分片策略。
在本实施例中,在本步骤中,分片总数需要通过第一处理速率和预设的速率进行确定,如果第一处理速率和预设的速率相差较大,可以对分片总数增加到较多的水平,反之,如果第一处理速率和预设的速率相差较少,则可以对分片总数增加较少的数量即可满足定时任务的处理需求。
在另外一些实施例中,计算模块502,还被配置为:
获取当前可用的微服务容器,将全部所述分片资源编号;
根据负载均衡的原则为全部所述可用的微服务容器分配全部所述分片资源;
将所述识别码除以所述分片总数得到所述分片项;
根据所述分片资源的编号和所述分片项得到所述分片策略,所述策略包括:将与所述分片项的数值相等的分片资源编号对应的分片资源所在的微服务容器作为处理所述定时任务的微服务容器。
在另外一些实施例中,获取模块501,还被配置为:
通过所述Elastic-Job作业监控获取所述任务队列中已经处理完的定时任务的数量和处理占用的时间;
根据所述已经处理完的定时任务的数量和处理占用的时间得到所述第一处理速率。
在本实施例中,首先获取任务队列中已经处理完的定时任务的数量m和处理占用的时间t,之后通过将任务队列中已经处理完的定时任务的数量m除以处理占用的时间t,即可得到第一处理速率。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的任务资源动态调度方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的任务资源动态调度方法。
图6示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的任务资源动态调度方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的任务资源动态调度方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的任务资源动态调度方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种定时任务资源动态调度方法,其特征在于,包括:
获取任务队列中的定时任务的第一处理速率;其中,所述定时任务在微服务容器上进行处理;
响应于确定所述第一处理速率小于预设的速率,为所述任务队列重新分配分片资源,得到分片策略;
将所述分片策略发送给注册中心,以使所述注册中心根据所述分片策略对所述微服务容器进行分片;
在分片后的所述微服务容器上对所述定时任务进行处理。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取在分片后的所述微服务容器上对所述定时任务进行处理的第二处理速率;
响应于确定所述第二处理速率小于预设的速率,为所述任务队列分配新的微服务容器,以使所述任务队列中的所述定时任务同时被所述微服务容器和所述新的微服务容器处理。
3.根据权利要求1所述的方法,其特征在于,所述为所述任务队列重新分配分片资源,得到分片策略,包括:
获取所述任务队列的识别码,根据所述第一处理速率确定分片总数;
根据哈希算法对所述识别码和所述分片总数进行计算,得到所述任务队列对应的微服务容器的分片项;根据所述分片总数和所述分片项得到所述分片策略。
4.根据权利要求3所述的方法,其特征在于,所述根据哈希算法对所述识别码和所述分片总数进行计算,得到所述任务队列对应的微服务容器的分片项;根据所述分片总数和所述分片项得到所述分片策略,包括:
获取当前可用的微服务容器,将全部所述分片资源进行编号;
根据负载均衡的原则为全部所述可用的微服务容器分配全部所述分片资源;
将所述识别码除以所述分片总数得到所述分片项;
根据所述分片资源的编号和所述分片项得到所述分片策略,所述策略包括:将与所述分片项的数值相等的分片资源编号对应的分片资源所在的微服务容器作为处理所述定时任务的微服务容器。
5.根据权利要求1所述的方法,其特征在于,所述第一处理速率通过Elastic-Job作业监控获取。
6.根据权利要求5所述的方法,其特征在于,所述获取任务队列中的定时任务的第一处理速率,包括:
通过所述Elastic-Job作业监控获取所述任务队列中已经处理完的定时任务的数量和处理占用的时间;
根据所述已经处理完的定时任务的数量和处理占用的时间得到所述第一处理速率。
7.根据权利要求1所述的方法,其特征在于,所述方法在技术栈HALO框架中运行,所述注册中心的配置通过Oceanbase数据库存储。
8.一种定时任务资源动态调度装置,其特征在于,包括:
获取模块,被配置为获取任务队列中的定时任务的第一处理速率;其中,所述定时任务在微服务容器上进行处理;
计算模块,被配置为响应于确定所述第一处理速率小于预设的速率,为所述任务队列重新分配分片资源,得到分片策略;
分配模块,被配置为将所述分片策略发送给注册中心,以使所述注册中心根据所述分片策略对所述微服务容器进行分片;
处理模块,被配置为在分片后的所述微服务容器上对所述定时任务进行处理。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任意一项所述的方法。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机执行根据权利要求1至7中任意一项所述的方法。
CN202210334280.4A 2022-03-30 2022-03-30 定时任务资源动态调度方法及相关装置 Pending CN114942833A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210334280.4A CN114942833A (zh) 2022-03-30 2022-03-30 定时任务资源动态调度方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210334280.4A CN114942833A (zh) 2022-03-30 2022-03-30 定时任务资源动态调度方法及相关装置

Publications (1)

Publication Number Publication Date
CN114942833A true CN114942833A (zh) 2022-08-26

Family

ID=82907077

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210334280.4A Pending CN114942833A (zh) 2022-03-30 2022-03-30 定时任务资源动态调度方法及相关装置

Country Status (1)

Country Link
CN (1) CN114942833A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117421106A (zh) * 2023-12-11 2024-01-19 湖南行必达网联科技有限公司 一种嵌入式软件的任务调度方法、系统及设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117421106A (zh) * 2023-12-11 2024-01-19 湖南行必达网联科技有限公司 一种嵌入式软件的任务调度方法、系统及设备
CN117421106B (zh) * 2023-12-11 2024-03-08 湖南行必达网联科技有限公司 一种嵌入式软件的任务调度方法、系统及设备

Similar Documents

Publication Publication Date Title
US10754704B2 (en) Cluster load balancing based on assessment of future loading
CN112162865B (zh) 服务器的调度方法、装置和服务器
CN107241281B (zh) 一种数据处理方法及其装置
CN109408205B (zh) 基于hadoop集群的任务调度方法和装置
CN111813545B (zh) 一种资源配置方法、装置、介质和设备
US9477460B2 (en) Non-transitory computer-readable storage medium for selective application of update programs dependent upon a load of a virtual machine and related apparatus and method
CN107832143B (zh) 一种物理机资源的处理方法和装置
CN112380020A (zh) 一种算力资源分配方法、装置、设备及存储介质
CN111338791A (zh) 集群队列资源的调度方法、装置、设备及存储介质
CN111352736A (zh) 大数据资源的调度方法、装置、服务器及存储介质
CN112905342B (zh) 资源调度方法、装置、设备及计算机可读存储介质
CN112463375A (zh) 一种数据处理的方法和装置
CN106569892B (zh) 资源调度方法与设备
CN107430526B (zh) 用于调度数据处理的方法和节点
CN117971499B (zh) 资源配置方法、装置、电子设备和存储介质
WO2014046885A2 (en) Concurrency identification for processing of multistage workflows
CN114625533A (zh) 分布式任务调度方法、装置、电子设备及存储介质
US20240264875A1 (en) Method, apparatus, system, device, medium and program product for resource scheduling
CN115686805A (zh) Gpu资源共享的方法和装置、调度gpu资源共享的方法和装置
CN115168040A (zh) 一种作业抢占调度方法、装置、设备和存储介质
CN114942833A (zh) 定时任务资源动态调度方法及相关装置
CN110912967A (zh) 一种服务节点调度方法、装置、设备及存储介质
CN111813541B (zh) 一种任务调度方法、装置、介质和设备
US9405470B2 (en) Data processing system and data processing method
CN112256436B (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