CN114090207A - 一种异步任务执行的方法 - Google Patents
一种异步任务执行的方法 Download PDFInfo
- Publication number
- CN114090207A CN114090207A CN202111381805.1A CN202111381805A CN114090207A CN 114090207 A CN114090207 A CN 114090207A CN 202111381805 A CN202111381805 A CN 202111381805A CN 114090207 A CN114090207 A CN 114090207A
- Authority
- CN
- China
- Prior art keywords
- task
- tasks
- failure
- processed
- priority
- 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
Links
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling 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)
- Debugging And Monitoring (AREA)
Abstract
本申请属于计算机技术领域,公开了异步任务执行的方法、装置、电子设备及可读存储介质,该方法包括,分别获取待处理任务集合中的每一任务的失败次数以及初始优先级,其中,待处理任务集合中包含至少一个任务;根据待处理任务集合中的各任务的失败次数以及初始优先级,分别确定每一任务的目标优先级;根据待处理任务集合中的各任务的目标优先级,执行任务处理操作。这样,就可以在执行异步任务时,优化任务的执行顺序。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及异步任务执行的方法、装置、电子设备和可读存储介质。
背景技术
随着互联网技术的快速发展,服务器系统之间的交互也越来越频繁,处理的业务也越来越复杂,在实时性要求不高,任务执行时间较长的情况下,通常采用异步执行的方法执行任务。
现有技术下,在执行异步任务时,通常采用线程、以及简单的任务表的方式,对任务进行处理。
其中,采用线程执行任务时,任务无法得到监控,执行失败无法再次执行。以及采用简单的任务表执行任务时,有些任务无法及时处理,甚至得不到处理。
由此,在执行异步任务时,如何优化任务的执行顺序,是一个需要解决的技术问题。
发明内容
本申请实施例的目的在于提供异步任务执行的方法、装置、电子设备和可读存储介质,用以在执行异步任务时,优化任务的执行顺序。
一方面,提供一种异步任务执行的方法,包括:
分别获取待处理任务集合中的每一任务的失败次数以及初始优先级,其中,待处理任务集合中包含至少一个任务;
根据待处理任务集合中的各任务的失败次数以及初始优先级,分别确定每一任务的目标优先级;
根据待处理任务集合中的各任务的目标优先级,执行任务处理操作。
在上述实现过程中,根据任务的失败次数和初始优先级,确定任务的目标优先级,并根据失败次数,动态的调整任务的目标优先级,优化任务的执行顺序。
一种实施方式中,根据待处理任务集合中的各任务的失败次数以及初始优先级,分别确定每一任务的目标优先级,包括:
从待处理任务集合中,筛选出失败次数低于第一预设次数阈值的第一任务,获得第一任务集合;
分别将第一任务集合中每个第一任务的初始优先级,确定为相应第一任务的目标优先级;
从待处理任务集合中,筛选出符合第一预设筛选条件的第二任务,获得第二任务集合;
根据第二任务集合中各第二任务的失败次数以及初始优先级,将各第二任务进行排序;
按照各第二任务的排序,确定各第二任务的目标优先级,其中,每一第二任务的目标优先级均高于各第一任务的目标优先级;
从待处理任务集合中,筛选出符合第二预设筛选条件的第三任务,获得第三任务集合;
将第三任务集合中的每一第三任务的目标优先级,设置为指定优先级。在上述实现过程中,根据任务的失败次数,确定任务的目标优先级,使得任务的目标优先级可以根据任务的失败次数动态的调整。
一种实施方式中,根据第二任务集合中各第二任务的失败次数以及初始优先级,将各第二任务进行排序,包括:
根据第二任务集合中各第二任务的失败次数,将各第二任务进行排序;
若存在失败次数相同的至少两个第二任务,则按照至少两个第二任务的初始优先级,对所述至少两个第二任务的排序进行调整。
在上述实现过程中,若存在失败次数相同的任务,则根据任务的初始优先级确定失败次数相同的任务的目标优先级,根据目标优先级进行排序。
一种实施方式中,从待处理任务集合中,筛选出符合第一预设筛选条件的第二任务,获得第二任务集合,包括:
从待处理任务集合中,筛选出失败次数不低于第一预设次数阈值,且低于第二预设次数阈值的第一失败任务,以及筛选出失败次数不低于第二预设次数阈值且低于第三预设次数阈值的第二失败任务;
根据各第二失败任务的失败次数,分别确定每个第二失败任务的衰减时间;
分别获取每个第二失败任务的失败时长,其中,失败时长为第二失败任务执行失败的失败时间点至当前时间点之间的时长;
从筛选出的第二失败任务中,筛选出对应的失败时长不低于相应衰减时间的第三失败任务;
将筛选出的第一失败任务以及第三失败任务,确定为第二任务,获得第二任务集合。
在上述实现过程中,根据任务的失败次数,设置衰减时间,避免任务一直循环执行,提高了系统资源的利用。
一种实施方式中,从所述待处理任务集合中,筛选出符合第二预设筛选条件的第三任务,获得第三任务集合,包括:
从筛选出的第二失败任务中,筛选出对应的失败时长低于相应衰减时间的第三任务,获得第所述三任务集合。
在上述实现过程中,根据失败时长低于相应衰减时间的任务,获得第三任务集合。
一种实施方式中,分别获取待处理任务集合中的每一任务的失败次数以及初始优先级,还包括:
若确定待处理任务集合中,存在失败次数不低于第三预设次数阈值的第四任务,则将每个第四任务从待处理任务集合移出至失败集合;
基于移出至失败集合,发出任务异常告警通知。
在上述实现过程中,在任务的失败次数到达第三预设次数阈值时,将任务移出至失败集合,需要人工干预,避免浪费系统资源。
一种实施方式中,根据待处理任务集合中的各任务的目标优先级,执行任务处理操作,包括:
从待处理任务集合中,筛选出未被加锁的各任务的目标优先级;
确定筛选出的各任务的目标优先级中的最高优先级;
将最高优先级对应的任务进行加锁;
执行最高优先级对应的任务;
确定最高优先级对应的任务执行完成之后,对最高优先级对应的任务进行解锁。
在上述实现过程中,从未加锁的各任务中选取优先级最高的任务,并进行加锁,任务执行完成后,进行解锁任务,防止任务被重复执行。
一方面,提供一种异步任务执行的装置,包括:
获取单元,用于分别获取待处理任务集合中的每一任务的失败次数以及初始优先级,其中,待处理任务集合中包含至少一个任务;
设置单元,用于根据待处理任务集合中的各任务的失败次数以及初始优先级,分别确定每一任务的目标优先级;
执行单元,用于根据待处理任务集合中的各任务的目标优先级,执行任务处理操作。
一种实施方式中,设置单元具体用于:
从待处理任务集合中,筛选出失败次数低于第一预设次数阈值的第一任务,获得第一任务集合;
分别将第一任务集合中每个第一任务的初始优先级,确定为相应第一任务的目标优先级;
从待处理任务集合中,筛选出符合第一预设筛选条件的第二任务,获得第二任务集合;
根据第二任务集合中各第二任务的失败次数以及初始优先级,将各第二任务进行排序;
按照各第二任务的排序,确定各第二任务的目标优先级,其中,每一第二任务的目标优先级均高于各第一任务的目标优先级;
从待处理任务集合中,筛选出符合第二预设筛选条件的第三任务,获得第三任务集合;
将第三任务集合中的每一第三任务的目标优先级,设置为指定优先级。
一种实施方式中,设置单元还用于:
根据第二任务集合中各第二任务的失败次数,将各第二任务进行排序;
若存在失败次数相同的至少两个第二任务,则按照至少两个第二任务的初始优先级,对所述至少两个第二任务的排序进行调整。
一种实施方式中,设置单元具体用于:
从待处理任务集合中,筛选出失败次数不低于第一预设次数阈值,且低于第二预设次数阈值的第一失败任务,以及筛选出失败次数不低于第二预设次数阈值且低于第三预设次数阈值的第二失败任务;
根据各第二失败任务的失败次数,分别确定每个第二失败任务的衰减时间;
分别获取每个第二失败任务的失败时长,其中,失败时长为第二失败任务执行失败的失败时间点至当前时间点之间的时长;
从筛选出的第二失败任务中,筛选出对应的失败时长不低于相应衰减时间的第三失败任务;
将筛选出的第一失败任务以及第三失败任务,确定为第二任务,获得第二任务集合。
一种实施方式中,设置单元还用于:
从筛选出的第二失败任务中,筛选出对应的失败时长不低于相应衰减时间的第三任务,获得第三任务集合。
一种实施方式中,获取单元还用于:
若确定待处理任务集合中,存在失败次数不低于第三预设次数阈值的第四任务,则将每个第四任务从待处理任务集合移出至失败集合;
基于移出至失败集合,发出任务异常告警通知。
一种实施方式中,执行单元具体用于:
从待处理任务集合中,筛选出未被加锁的各任务的目标优先级;
确定筛选出的各任务的目标优先级中的最高优先级;
将最高优先级对应的任务进行加锁;
执行最高优先级对应的任务;
确定最高优先级对应的任务执行完成之后,对最高优先级对应的任务进行解锁。
一方面,提供了一种电子设备,包括处理器以及存储器,存储器存储有计算机可读取指令,当计算机可读取指令由处理器执行时,运行如上述任一种异步任务执行的各种可选实现方式中提供的方法的步骤。
一方面,提供了一种可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时运行如上述任一种异步任务执行的各种可选实现方式中提供的方法的步骤。
本申请实施例提供的异步任务执行的方法、装置、电子设备和可读存储介质中,分别获取待处理任务集合中的每一任务的失败次数以及初始优先级,其中,待处理任务集合中包含至少一个任务;根据待处理任务集合中的各任务的失败次数以及初始优先级,分别确定每一任务的目标优先级;根据待处理任务集合中的各任务的目标优先级,执行任务处理操作。这样,在执行异步任务时,根据任务的失败次数和初始优先级,确定任务的目标优先级,并根据失败次数,动态的调整任务的目标优先级,优化任务的执行顺序,提高了系统资源的合理利用。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种异步任务执行的应用场景示意图;
图2为本申请实施例提供的一种异步任务执行的方法的实施流程图;
图3为本申请实施例提供的一种异步任务执行的方法的详细实施流程图;
图4为本申请实施例提供的一种异步任务执行的装置的结构示意图;
图5为本申请实施方式中一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
首先对本申请实施例中涉及的部分用语进行说明,以便于本领域技术人员理解。
终端设备:可以是移动终端、固定终端或便携式终端,例如移动手机、站点、单元、设备、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统设备、个人导航设备、个人数字助理、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还可预见到的是,终端设备能够支持任意类型的针对用户的接口(例如可穿戴设备)等。
服务器:可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务以及大数据和人工智能平台等基础云计算服务的云服务器。
轮询:是一种中央处理器提供周边设备服务的方式,中央处理器依序询问每一个周边设备是否需要其服务,需要则给予服务,服务结束后再问下一个周边,周而复始。
加锁:一个进程控制共享资源不能被其他进程访问。
线程:是操作系统能够进行运算调度的最小单位。
消息队列:是在消息的传输过程中保存消息的容器。
为了可以在执行异步任务时,可以提高系统资源的合理利用,本申请实施例提供了异步任务执行的方法、装置、电子设备和可读存储介质。
参阅图1所示,为本申请实施例提供的一种异步任务执行的应用场景示意图。该应用场景包含调度控制中心和服务器。
可选的,服务器可以为终端设备。图1中,仅以服务器为两个设备为例进行说明,即服务器1和服务器2,实际应用中,服务器的数量可以为一个或多个,在此不作限制。
其中,调度控制中心用于:通过秒级轮询调度服务器执行任务。
服务器用于:分别获取待处理任务集合中的每一任务的失败次数和初始优先级,并根据待处理任务集合中的各任务的失败次数和初始优先级,分别确定每一任务的目标优先级,以及根据各任务的目标优先级,执行任务处理的操作。
一种实施方式中,调度控制中心通过秒级轮询调度服务器执行任务。服务器获取待处理任务集合中的每一个任务的失败次数和初始优先级,从待处理任务集合中,筛选出失败次数低于第一预设次数阈值的第一任务,组成第一任务集合,并将第一任务的初始优先级,确定为相应第一任务的目标优先级。从待处理任务集合中,筛选出失败次数不低于第一预设次数阈值,且低于第二预设次数阈值的第一失败任务,以及失败次数不低于第二预设次数阈值且低于第三预设次数阈值的第二失败任务中失败时长不低于相应衰减时间的第三失败任务,确定为第二任务,并根据第二任务的失败次数,对第二任务进行排序,若存在失败次数相同的第二任务,则初始优先级高的第二任务,目标优先级也越高。从筛选出的第二失败任务中,筛选出对应的失败时长低于相应衰减时间的第三任务,并将每一第三任务的目标优先级,设置为最低优先级。若确定待处理任务集合中,存在失败次数不低于第三预设次数阈值的第四任务,则将每个第四任务从待处理任务集合移出至失败集合,并发出任务异常告警通知。从待处理任务集合中,筛选出未被加锁的各任务的目标优先级,筛选出的各任务的目标优先级中的最高优先级,并对该任务进行加锁,以及执行该任务,以及任务执行完成之后,对该任务进行解锁。
这样,就可以在执行异步任务时,根据任务的失败次数和初始优先级,确定任务的目标优先级,并根据失败次数,动态的调整任务的目标优先级,使得任务列表中的每一任务都能被执行,设置任务衰减时间,避免了任务一直执行失败时,浪费系统资源,提高了系统资源的合理利用。
本申请实施例中,仅以执行主体为服务器为例进行说明,实际应用中,执行主体也可以为终端设备等其他电子设备,在此不作限制。
参阅图2所示,为本申请实施例提供的一种异步任务执行的方法的实施流程图,该方法的具体实施流程如下:
步骤200:分别获取待处理任务集合中的每一任务的失败次数以及初始优先级。
具体的,分别获取待处理任务集合中的每一个任务的失败次数和初始优先级,其中,带处理任务集合中,至少包含一个任务。
其中,待处理任务集合中包含至少一个任务。
可选的,每一任务的失败次数得获取方式可以通过人为输入获取的,还可以为实时检测到任务的当前的失败次数获取的。
实际应用中,任务的失败次数的获取还可以通过其它方式进行获取,在此不作限制。
其中,任务可以为业务系统提交的,任务可以包含业务关联名称、业务类型、系统来源以及最大失败次数等,任务可以为本地任务,也可以通过远程回调任务。
可选的,服务器可以通过回调接口实现任务的回调处理。
可选的,若任务为系统任务,则任务的优先级是系统设置的。若任务为模块处理的任务,则任务的优先级是人为设置的。
实际应用中,任务的优先级的设置,可根据实际应用情况进行设置,在此不作限制。
其中,初始优先级是提前设置的。
这样,就可以获取待处理任务集合中的每一个任务的失败次数和初始优先级。
进一步的,若确定待处理任务集合中,存在失败次数不低于第三预设次数阈值的第四任务,则将每个第四任务从待处理任务集合移出至失败集合,并基于移出至失败集合,发出任务异常告警通知。
具体的,对待处理任务集合中的每一任务进行筛选,若确定存在失败次数不低于第三预设次数阈值的第四任务,则将每个第四任务从待处理任务集合移出至失败集合,将失败次数不低于第三预设次数阈值的第四任务,从待处理任务集合移出至失败集合后,发出任务异常的警告通知。
其中,失败集合中的第四任务需要人工进行干预处理操作。
实际应用中,第三预设次数阈值可根据实际应用情况进行设置,在此不作限制。
这样,就可以对失败次数较多的任务,从待处理任务集合中移出至失败集合中,避免该任务一直执行执行,提高了系统资源的合理利用。
步骤201:根据待处理任务集合中的各任务的失败次数以及初始优先级,分别确定每一任务的目标优先级。
具体的,执行步骤201,可以采用以下步骤:
S2011:从待处理任务集合中,筛选出失败次数低于第一预设次数阈值的第一任务,获得第一任务集合。
具体的,从待处理任务集合中,筛选出之前执行过且失败次数低于第一预设次数阈值的第一任务,并将这些第一任务组成第一任务集合。
其中,可以通过将待处理任务集合中的每一任务的失败次数,与第一预设次数阈值进行比较,筛选出失败次数低于第一预设次数阈值的第一任务。
实际应用中,也可以通过其它方式进行筛选,在此不作限制。
实际应用中,第一预设次数阈值可根据实际应用情况进行设置,在此不作限制。
这样,就可以通过筛选失败次数低于第一预设次数阈值的第一任务,获得第一任务集合。
S2012:分别将第一任务集合中每个第一任务的初始优先级,确定为相应第一任务的目标优先级。
具体的,分别将之前获取到的第一任务集合中的每一个第一任务的初始优先级,确定为对应第一任务的目标优先级。
S2013:从待处理任务集合中,筛选出符合第一预设筛选条件的第二任务,获得第二任务集合。
具体的,执行步骤S2013,可以采用以下步骤:
步骤一:从待处理任务集合中,筛选出失败次数不低于第一预设次数阈值,且低于第二预设次数阈值的第一失败任务,以及筛选出失败次数不低于第二预设次数阈值且低于第三预设次数阈值的第二失败任务。
具体的,从待处理任务集合中,进行筛选,筛选出失败次数不低于第一预设次数阈值,且低于第二预设次数阈值的第一失败任务,以及失败次数不低于第二预设次数阈值且低于第三预设次数阈值的第二失败任务。
其中,可以通过比较的方式进行筛选,也可以通过其它方式进行筛选,在此不作限制。
实际应用中,第一预设次数阈值可根据实际应用情况进行设置,在此不作限制。
实际应用中,第二预设次数阈值可根据实际应用情况进行设置,在此不作限制。
步骤二:根据各第二失败任务的失败次数,分别确定每个第二失败任务的衰减时间。
具体的,根据根据各第二失败任务的失败次数,分别确定每个第二失败任务的衰减时间,第二任务的失败次数不同,对应设置的衰减时间也不相同。
其中,衰减时间为任务停止执行时间,衰减时间时根据第三任务的失败次数确定的。
一种实施方式中,衰减时间可以为1分钟、3分钟、5分钟、15分钟、50分钟以及5小时等。
实际应用中,衰减时间可以根据实际应用情况进行设置,在此不作限制。
步骤三:分别获取每个第二失败任务的失败时长。
其中,失败时长为第二失败任务执行失败的失败时间点至当前时间点之间的时长。
步骤四:从筛选出的第二失败任务中,筛选出对应的失败时长不低于相应衰减时间的第三失败任务。
具体的,从筛选出的第二失败任务中,筛选出对应的第二失败任务执行失败的失败时间点至当前时间点之间的时长,不低于相对应的衰减的任务,确定为第三失败任务,即该任务已经度过衰减时间。
步骤五:将筛选出的第一失败任务以及第三失败任务,确定为第二任务,获得第二任务集合。
S2014:根据第二任务集合中各第二任务的失败次数以及初始优先级,将各第二任务进行排序。
具体的,执行步骤S2014,可以采用以下步骤:
步骤一:根据第二任务集合中各第二任务的失败次数,将各第二任务进行排序。
具体的,根据第二任务集合中各第二任务的失败次数,按照失败次数,将第二任务集合中各第二任务进行排序。
一种实施方式中,根据第二任务集合中每个第二任务的失败次数,按着失败次数由多到少,将第二任务集合中各第二任务进行排序,获得一个失败次数由多到少的第二任务顺序队列。
一种实施方式中,第二任务集合中有三个第二任务,三个第二任务的失败次数分别为,1、2以及3,按照失败次数,将第二任务集合中三个第二任务进行排序,获得一个失败次数又多到少的第二任务顺序队列,即失败次数为3的任务排在最前面,失败次数为2的任务排在失败次数为3的任务后面,失败次数为1的任务排在最后面。
步骤二:若存在失败次数相同的至少两个第二任务,则按照至少两个第二任务的初始优先级,对所述至少两个第二任务的排序进行调整。
具体的,根据第二任务集合中各第二任务的失败次数,将各第二任务进行排序时,失败次数多的第二任务的目标优先级高于失败次数较少的第二任务的目标优先级,即目标优先级与失败次数呈正相关。若存在失败次数相同的至少两个第二任务,则将比较至少两个第二任务的初始优先级,并按照至少两个第二任务的初始优先级,将至少两个第二任务进行排序,初始优先级高的第二任务的目标优先级高于初始优先级较低的第二任务的目标优先级,即目标优先级与初始优先级均正相关。
其中,目标优先级与失败次数和初始优先级均呈正相关。
一种实施方式中,两个第二任务分别为A和B,两个第二任务的失败次数相同,A的初始优先级为8,B的初始优先级5,则A的目标优先级高于B的目标优先级。
S2015:按照各第二任务的排序,确定各第二任务的目标优先级。
具体的,按照各第二任务的排队顺序,确定每一第二任务的目标优先级,其中,每个第二任务的目标优先级均高于各第一任务的目标优先级。
一种实施方式中,按照各第二任务的排序,确定各第二任务的目标优先级,第二任务的失败次数越多,第二任务的目标优先级越高。
一种实施方式中,第一任务集合中有三个第一任务,第二任务集合中,有五个第二任务,五个第二任务的目标优先级均高于三个第一任务的目标优先级。
S2016:从待处理任务集合中,筛选出符合第二预设筛选条件的第三任务,获得第三任务集合。
可选的,可以采用从筛选出的第二失败任务中,筛选出对应的失败时长低于相应衰减时间的第三任务,获得第所述三任务集合。
具体的,从筛选出的第二失败任务中,筛选出对应的失败时长低于相应衰减时间的第三任务,这样就获得第所述三任务集合。
S2017:将第三任务集合中的每一第三任务的目标优先级,设置为指定优先级。
其中,指定优先级为最低优先级。
进一步的,各第三任务,根据对应的失败时长最先不低于对应的衰减时间的第三任务的优先级最高。
步骤202:根据待处理任务集合中的各任务的目标优先级,执行任务处理操作。
具体的,执行步骤202,可以执行以下步骤:
S2021:从待处理任务集合中,筛选出未被加锁的各任务的目标优先级。
具体的,从待处理任务集合中对各任务进行判断,判断任务是否被枷锁,若是,则记录日志,否则,筛选出未加锁的任务,并获取上述未加锁的任务的目标优先级。
其中,日志可以为记录的被加锁的任务。
需要说明的是,对任务进行加锁后,分布式调度系统中的其他服务器或终端,将不能对该任务进行执行操作。
S2022:确定筛选出的各任务的目标优先级中的最高优先级。
具体的,将筛选出的未加锁的各任务的目标优先级机进行两两比较,确定出各任务的目标优先级中的最高优先级。
S2023:将最高优先级对应的任务进行加锁。
具体的,对最高优先级对应的任务执行加锁操作。
S2024:执行最高优先级对应的任务。
S2025:确定最高优先级对应的任务执行完成之后,对最高优先级对应的任务进行解锁。
具体的,若最高优先级对应的任务执行完成后,则对最高优先级对应的任务进行解锁操作。
进一步的,最高优先级对应的任务执行完成后,获得任务执行结果,若任务执行结果表征该任务执行成功,则修改任务的状态,否则,记录失败信息。
具体的,若任务执行结果表征该任务执行成功,则将任务的状态由未执行修改为已执行,否则,记录任务的失败信息。
其中,失败信息可以为失败原因,失败次数等。
传统的执行场等待业务时,一般采用开启一个线程执行任务,任务执行无法得到监控,失败了也无法重试。传统的还可有采用消息队列的方式,需要一整套的集群支持,增加了运维的难度和成本,以及还可以采用简单的任务表,无法分布式执行任务和动态的调整优先级。
本申请实施例中,在执行异步任务时,应用在分布式调度系统中,实现分布式执行任务,根据任务的失败次数和初始优先级,确定任务的执行顺序,并根据失败次数,动态的调整任务的目标优先级,使得紧急任务得到及时处理。由于应用于分布式系统调度,多台设备并行执行,能处理大量任务,使得优先级较低的任务也能得到及时处理,优化了任务的执行顺序,以及使得任务都能得到准实时处理,设置任务衰减时间,避免了任务一直执行失败时,浪费系统资源,提高了用户的体验,使得系统资源得到合理使用,提高了系统资源的利用率。
参阅图3所示,其为本申请实施例提供的一种异步任务执行的方法的详细实施流程图,包括:
步骤300:服务器分别获取各任务的目标优先级。
步骤301:服务器判断待处理任务集合是否为空,若是,则执行步骤312,否则,执行步骤302。
步骤302:服务器从待处理任务集合中,筛选出未被加锁的各任务的目标优先级。
步骤303:服务器确定筛选出的各任务的目标优先级中的最高优先级。
步骤304:服务器将最高优先级对应的任务进行加锁。
步骤305:服务器判断该任务是否为该服务器的本地任务,若是,则执行步骤306,否则,执行步骤307。
步骤306:服务器执行最高优先级对应的任务。
步骤307:服务器远程回调该任务。
步骤308:服务器确定最高优先级对应的任务执行完成之后,获得任务执行结果,对最高优先级对应的任务进行解锁。
步骤309:服务器判断最高优先级对应的任务是否执行成功,若是,则执行步骤310,否则,执行步骤311。
步骤310:服务器修改该任务的任务状态。
步骤311:服务器记录失败信息。
需要说明的是,执行完步骤311,执行步骤302。
步骤312:服务器任务执行结束。
具体的,执行步骤300-步骤312时,具体步骤参见上述步骤200-步骤202,在此不做赘述。
基于同一发明构思,本申请实施例中还提供了一种异步任务执行的装置,由于上述装置及设备解决问题的原理与一种异步任务执行的方法相似,因此,上述装置的实施可以参见方法的实施,重复之处不再赘述。
参阅图4所示,其为本申请实施例提供的一种异步任务执行的装置的结构示意图,包括:
一方面,提供一种异步任务执行的装置,包括:
获取单元400,用于分别获取待处理任务集合中的每一任务的失败次数以及初始优先级,其中,待处理任务集合中包含至少一个任务;
设置单元401,用于根据待处理任务集合中的各任务的失败次数以及初始优先级,分别确定每一任务的目标优先级;
执行单元402,用于根据待处理任务集合中的各任务的目标优先级,执行任务处理操作。
一种实施方式中,设置单元401具体用于:
从待处理任务集合中,筛选出失败次数低于第一预设次数阈值的第一任务,获得第一任务集合;
分别将第一任务集合中每个第一任务的初始优先级,确定为相应第一任务的目标优先级;
从待处理任务集合中,筛选出符合第一预设筛选条件的第二任务,获得第二任务集合;
根据第二任务集合中各第二任务的失败次数以及初始优先级,将各第二任务进行排序;
按照各第二任务的排序,确定各第二任务的目标优先级,其中,每一第二任务的目标优先级均高于各第一任务的目标优先级;
从待处理任务集合中,筛选出符合第二预设筛选条件的第三任务,获得第三任务集合;
将第三任务集合中的每一第三任务的目标优先级,设置为指定优先级。
一种实施方式中,设置单元401还用于:
根据第二任务集合中各第二任务的失败次数,将各第二任务进行排序;
若存在失败次数相同的至少两个第二任务,则按照至少两个第二任务的初始优先级,对所述至少两个第二任务的排序进行调整。
一种实施方式中,设置单元401具体用于:
从待处理任务集合中,筛选出失败次数不低于第一预设次数阈值,且低于第二预设次数阈值的第一失败任务,以及筛选出失败次数不低于第二预设次数阈值且低于第三预设次数阈值的第二失败任务;
根据各第二失败任务的失败次数,分别确定每个第二失败任务的衰减时间;
分别获取每个第二失败任务的失败时长,其中,失败时长为第二失败任务执行失败的失败时间点至当前时间点之间的时长;
从筛选出的第二失败任务中,筛选出对应的失败时长不低于相应衰减时间的第三失败任务;
将筛选出的第一失败任务以及第三失败任务,确定为第二任务,获得第二任务集合。
一种实施方式中,设置单元401还用于:
从筛选出的第二失败任务中,筛选出对应的失败时长不低于相应衰减时间的第三任务,获得第所述三任务集合。
一种实施方式中,获取单元400还用于:
若确定待处理任务集合中,存在失败次数不低于第三预设次数阈值的第四任务,则将每个第四任务从待处理任务集合移出至失败集合;
基于移出至失败集合,发出任务异常告警通知。
一种实施方式中,执行单元402具体用于:
从待处理任务集合中,筛选出未被加锁的各任务的目标优先级;
确定筛选出的各任务的目标优先级中的最高优先级;
将最高优先级对应的任务进行加锁;
执行最高优先级对应的任务;
确定最高优先级对应的任务执行完成之后,对最高优先级对应的任务进行解锁。
本申请实施例提供的异步任务执行的方法、装置、电子设备和可读存储介质中,分别获取待处理任务集合中的每一任务的失败次数以及初始优先级,其中,待处理任务集合中包含至少一个任务;根据待处理任务集合中的各任务的失败次数以及初始优先级,分别确定每一任务的目标优先级;根据待处理任务集合中的各任务的目标优先级,执行任务处理操作。这样,在执行异步任务时,根据任务的失败次数和初始优先级,确定任务的执行顺序,并根据失败次数,动态的调整任务的目标优先级,使得紧急任务得到及时处理,以及设置任务衰减时间,避免了任务一直执行失败时,浪费系统资源,提高了系统资源的合理利用。
图5示出了一种电子设备5000的结构示意图。参阅图5所示,电子设备5000包括:处理器5010、存储器5020、电源5030、显示单元5040、输入单元5050。
处理器5010是电子设备5000的控制中心,利用各种接口和线路连接各个部件,通过运行或执行存储在存储器5020内的软件程序和/或数据,执行电子设备5000的各种功能,从而对电子设备5000进行整体监控。
本申请实施例中,处理器5010调用存储器5020中存储的计算机程序时执行如图2中所示的实施例提供的异步任务执行的方法。
可选的,处理器5010可包括一个或多个处理单元;优选的,处理器5010可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器5010中。在一些实施例中,处理器、存储器、可以在单一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
存储器5020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、各种应用等;存储数据区可存储根据电子设备5000的使用所创建的数据等。此外,存储器5020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件等。
电子设备5000还包括给各个部件供电的电源5030(比如电池),电源可以通过电源管理系统与处理器5010逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗等功能。
显示单元5040可用于显示由用户输入的信息或提供给用户的信息以及电子设备5000的各种菜单等,本发明实施例中主要用于显示电子设备5000中各应用的显示界面以及显示界面中显示的文本、图片等对象。显示单元5040可以包括显示面板5041。显示面板5041可以采用液晶显示屏(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置。
输入单元5050可用于接收用户输入的数字或字符等信息。输入单元5050可包括触控面板5051以及其他输入设备5052。其中,触控面板5051,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触摸笔等任何适合的物体或附件在触控面板5051上或在触控面板5051附近的操作)。
具体的,触控面板5051可以检测用户的触摸操作,并检测触摸操作带来的信号,将这些信号转换成触点坐标,发送给处理器5010,并接收处理器5010发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板5051。其他输入设备5052可以包括但不限于物理键盘、功能键(比如音量控制按键、开关机按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
当然,触控面板5051可覆盖显示面板5041,当触控面板5051检测到在其上或附近的触摸操作后,传送给处理器5010以确定触摸事件的类型,随后处理器5010根据触摸事件的类型在显示面板5041上提供相应的视觉输出。虽然在图5中,触控面板5051与显示面板5041是作为两个独立的部件来实现电子设备5000的输入和输出功能,但是在某些实施例中,可以将触控面板5051与显示面板5041集成而实现电子设备5000的输入和输出功能。
电子设备5000还可包括一个或多个传感器,例如压力传感器、重力加速度传感器、接近光传感器等。当然,根据具体应用中的需要,上述电子设备5000还可以包括摄像头等其它部件,由于这些部件不是本申请实施例中重点使用的部件,因此,在图5中没有示出,且不再详述。
本领域技术人员可以理解,图5仅仅是电子设备的举例,并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
本申请实施例中,一种可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使得通信设备可以执行上述实施例中的各个步骤。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种异步任务执行的方法,其特征在于,应用于分布式调度系统中的每一服务器,包括:
分别获取待处理任务集合中的每一任务的失败次数以及初始优先级,其中,所述待处理任务集合中包含至少一个任务;
根据所述待处理任务集合中的各任务的失败次数以及初始优先级,分别确定每一任务的目标优先级;
根据所述待处理任务集合中的各任务的目标优先级,执行任务处理操作。
2.如权利要求1所述的方法,其特征在于,所述根据所述待处理任务集合中的各任务的失败次数以及初始优先级,分别确定每一任务的目标优先级,包括:
从所述待处理任务集合中,筛选出失败次数低于第一预设次数阈值的第一任务,获得第一任务集合;
分别将所述第一任务集合中每个第一任务的初始优先级,确定为相应第一任务的目标优先级;
从所述待处理任务集合中,筛选出符合第一预设筛选条件的第二任务,获得第二任务集合;
根据所述第二任务集合中各第二任务的失败次数以及初始优先级,将各第二任务进行排序;
按照各第二任务的排序,确定各第二任务的目标优先级,其中,每一第二任务的目标优先级均高于各第一任务的目标优先级;
从所述待处理任务集合中,筛选出符合第二预设筛选条件的第三任务,获得第三任务集合;
将第三任务集合中的每一第三任务的目标优先级,设置为指定优先级。
3.如权利要求2所述的方法,其特征在于,所述根据所述第二任务集合中各第二任务的失败次数以及初始优先级,将各第二任务进行排序,包括:
根据所述第二任务集合中各第二任务的失败次数,将各第二任务进行排序;
若存在失败次数相同的至少两个第二任务,则按照所述至少两个第二任务的初始优先级,对所述至少两个第二任务的排序进行调整。
4.如权利要求2所述的方法,其特征在于,所述从所述待处理任务集合中,筛选出符合第一预设筛选条件的第二任务,获得第二任务集合,包括:
从所述待处理任务集合中,筛选出失败次数不低于第一预设次数阈值,且低于第二预设次数阈值的第一失败任务,以及筛选出失败次数不低于第二预设次数阈值且低于第三预设次数阈值的第二失败任务;
根据各第二失败任务的失败次数,分别确定每个第二失败任务的衰减时间;
分别获取每个第二失败任务的失败时长,其中,所述失败时长为第二失败任务执行失败的失败时间点至当前时间点之间的时长;
从筛选出的第二失败任务中,筛选出对应的失败时长不低于相应衰减时间的第三失败任务;
将筛选出的第一失败任务以及第三失败任务,确定为第二任务,获得第二任务集合。
5.如权利要求4所述的方法,其特征在于,所述从所述待处理任务集合中,筛选出符合第二预设筛选条件的第三任务,获得第三任务集合,包括:
从所述筛选出的第二失败任务中,筛选出对应的失败时长低于相应衰减时间的第三任务,获得第所述三任务集合。
6.如权利要求1-5任一项所述的方法,其特征在于,所述分别获取待处理任务集合中的每一任务的失败次数以及初始优先级,还包括:
若确定所述待处理任务集合中,存在失败次数不低于第三预设次数阈值的第四任务,则将每个第四任务从所述待处理任务集合移出至失败集合;
基于所述移出至失败集合,发出任务异常告警通知。
7.如权利要求1-5任一项所述的方法,其特征在于,所述根据所述待处理任务集合中的各任务的目标优先级,执行任务处理操作,包括:
从待处理任务集合中,筛选出未被加锁的各任务的目标优先级;
确定筛选出的各任务的目标优先级中的最高优先级;
将所述最高优先级对应的任务进行加锁;
执行所述最高优先级对应的任务;
确定所述最高优先级对应的任务执行完成之后,对所述最高优先级对应的任务进行解锁。
8.一种异步任务执行的装置,其特征在于,应用于分布式调度系统中的每一服务器,包括:
获取单元,用于分别获取待处理任务集合中的每一任务的失败次数以及初始优先级,其中,所述待处理任务集合中包含至少一个任务;
设置单元,用于根据所述待处理任务集合中的各任务的失败次数以及初始优先级,分别确定每一任务的目标优先级;
执行单元,用于根据所述待处理任务集合中的各任务的目标优先级,执行任务处理操作。
9.一种电子设备,其特征在于,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如权利要求1-7任一所述方法。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时运行如权利要求1-7任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111381805.1A CN114090207A (zh) | 2021-11-19 | 2021-11-19 | 一种异步任务执行的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111381805.1A CN114090207A (zh) | 2021-11-19 | 2021-11-19 | 一种异步任务执行的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114090207A true CN114090207A (zh) | 2022-02-25 |
Family
ID=80302498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111381805.1A Pending CN114090207A (zh) | 2021-11-19 | 2021-11-19 | 一种异步任务执行的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114090207A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114862500A (zh) * | 2022-04-14 | 2022-08-05 | 中国联合网络通信集团有限公司 | 订单处理方法、装置、电子设备及存储介质 |
CN116503138A (zh) * | 2023-05-04 | 2023-07-28 | 杭州妙壹科技有限公司 | 一种基于异步编程的话费充值订单调度方法与系统 |
CN117273663A (zh) * | 2023-11-13 | 2023-12-22 | 杭银消费金融股份有限公司 | 一种职工调动流程自动化处理方法及系统 |
-
2021
- 2021-11-19 CN CN202111381805.1A patent/CN114090207A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114862500A (zh) * | 2022-04-14 | 2022-08-05 | 中国联合网络通信集团有限公司 | 订单处理方法、装置、电子设备及存储介质 |
CN116503138A (zh) * | 2023-05-04 | 2023-07-28 | 杭州妙壹科技有限公司 | 一种基于异步编程的话费充值订单调度方法与系统 |
CN116503138B (zh) * | 2023-05-04 | 2023-10-31 | 杭州妙壹科技有限公司 | 一种基于异步编程的话费充值订单调度方法与系统 |
CN117273663A (zh) * | 2023-11-13 | 2023-12-22 | 杭银消费金融股份有限公司 | 一种职工调动流程自动化处理方法及系统 |
CN117273663B (zh) * | 2023-11-13 | 2024-02-27 | 杭银消费金融股份有限公司 | 一种职工调动流程自动化处理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114090207A (zh) | 一种异步任务执行的方法 | |
CN104272787B (zh) | 用于自主还原到行为检查点的技术 | |
WO2018108001A1 (en) | System and method to handle events using historical data in serverless systems | |
CN109901918B (zh) | 一种处理超时任务的方法和装置 | |
CN113157409A (zh) | 基于ai的rpa任务调度方法、装置、电子设备及存储介质 | |
US20220222266A1 (en) | Monitoring and alerting platform for extract, transform, and load jobs | |
CN106549796A (zh) | 一种固件空间下载的资源控制方法及主节点 | |
CN105847446B (zh) | 一种网络数据的获取方法、装置和系统 | |
US10331484B2 (en) | Distributed data platform resource allocator | |
CN115981871B (zh) | 一种gpu资源调度方法、装置、设备及存储介质 | |
CN104735134B (zh) | 一种用于提供计算服务的方法和装置 | |
CN108154343B (zh) | 一种企业级信息系统的应急处理方法及系统 | |
CN108011964B (zh) | 图片上传方法、装置、电子终端及可读存储介质 | |
CN113660352A (zh) | 一种服务器调度的方法、装置、电子设备及可读存储介质 | |
CN114357032A (zh) | 一种数据质量监控方法、装置、电子设备及存储介质 | |
US11550692B2 (en) | Integrated event processing and policy enforcement | |
CN111611123B (zh) | 数据处理方法、数据处理系统及设备 | |
CN109857720B (zh) | 数据库表监控方法、装置、计算机装置及可读存储介质 | |
CN112685157A (zh) | 任务处理方法、装置、计算机设备及存储介质 | |
CN113296913A (zh) | 基于单集群的数据处理方法、装置、设备及存储介质 | |
CN113037871A (zh) | 会议通话的恢复方法、装置、系统、电子设备和可读存储介质 | |
CN113162982B (zh) | 埋点信息上报方法、装置和电子设备 | |
CN117041353B (zh) | 任务处理的方法、装置、电子设备及存储介质 | |
US20230125503A1 (en) | Coordinated microservices | |
US20240104580A1 (en) | Service level agreement management and breach detection |
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 |