CN113806058A - 任务管理方法及装置、存储介质及电子设备 - Google Patents
任务管理方法及装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN113806058A CN113806058A CN202111176124.1A CN202111176124A CN113806058A CN 113806058 A CN113806058 A CN 113806058A CN 202111176124 A CN202111176124 A CN 202111176124A CN 113806058 A CN113806058 A CN 113806058A
- Authority
- CN
- China
- Prior art keywords
- task
- target
- queue
- determining
- executed
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 29
- 238000000034 method Methods 0.000 claims abstract description 71
- 238000012545 processing Methods 0.000 claims abstract description 19
- 238000007781 pre-processing Methods 0.000 claims description 40
- 238000012216 screening Methods 0.000 claims description 36
- 238000012163 sequencing technique Methods 0.000 abstract description 14
- 239000012634 fragment Substances 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 101150044508 key gene Proteins 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供一种任务管理方法及装置、存储介质及电子设备,该方法包括:当接收到第一调度任务时,获取各个第一目标任务;基于每个第一目标任务的执行时间,确定每个第一目标任务在队列数据库中所属的待执行队列,以及确定每个第一目标任务的排序值;基于每个第一目标任务的排序值,将每个第一目标任务加入其所属的待执行队列中;当接收到第二调度任务时,在各个待执行队列中获取各个第二目标任务,并将各个第二目标任务向任务使用端发送。本发明基于排序值将任务加入对应的待执行队列,使用排序值,提高了查询任务的速度,并且使用待执行队列,实现了任务的分片管理,减少确定向任务使用端发送的任务所花时间,提高了对任务的处理效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种任务管理方法及装置、存储介质及电子设备。
背景技术
定时任务是在达到预设的时间后即被触发执行的任务,随着计算机和互联网技术的发展,定时任务被应用到越来越多的场景中,具体如,业务系统中应用定时任务,在达到一定的时间便向用户推送消息,或是为用户办理的业务定制定时任务,在达到该定时任务的时间时,为用户办理对应的业务,由此可以为用户提供更加优质的服务。
目前对定时任务的处理方式通常是将定时任务存储到数据库中,通过定期拉取数据库中的定时任务,来检测定时任务是否到达触发时间。随着定时任务量的增加,传统对定时任务的处理方式在拉取定时任务时所花费的时间在不断的增加,这导致系统处理定时任务的效率降低。
发明内容
有鉴于此,本发明提供一种任务管理方法及装置、存储介质及电子设备,根据任务的排序值确定任务所属的待执行队列,并将任务添加至其所属的待执行队列中,后续直接通过待执行队列确定向任用使用端发送的任务即可,由此对任务处理所花费的时间更少,过程更加便捷,提高了对任务的处理效率。
为实现上述目的,本发明实施例提供如下技术方案:
一种任务管理方法,包括:
当接收到任务调度中心发送的第一调度任务时,从预先生成并保存在任务数据库中的各个业务任务中获取各个第一目标任务;
基于每个所述第一目标任务的执行时间,确定每个所述第一目标任务在队列数据库中所属的待执行队列,以及确定每个所述第一目标任务的排序值;
基于每个所述第一目标任务的排序值,将每个第一目标任务加入其所属的待执行队列中;
当接收到所述任务调度中心发送的第二调度任务时,在各个所述待执行队列中获取各个第二目标任务,并将各个所述第二目标任务向任务使用端发送。
上述的方法,可选的,所述从预先生成并保存在任务数据库中的各个业务任务中获取各个第一目标任务,包括:
确定所述第一调度任务的筛选时间段;
确定每个业务任务的执行时间;
将执行时间处于所述筛选时间段中的业务任务确定为筛选任务;
确定每个所述筛选任务的任务状态,并将任务状态为未执行状态的筛选任务确定为第一目标任务。
上述的方法,可选的,所述确定每个所述第一目标任务的排序值,包括:
确定每个所述第一目标任务的参照时间以及预设重试次数;
基于每个所述第一目标任务的参数时间、执行时间以及预设重试次数进行处理,得到每个所述第一目标任务的排序值。
上述的方法,可选的,业务任务的生成过程,包括:
当接收到业务系统发送的任务创建请求时,获取与所述任务创建请求对应的任务数据;
基于所述任务数据生成与所述任务创建请求对应的业务任务;
基于所述业务任务的执行时间,判断所述业务任务是否满足预设的预处理条件;
若所述业务任务满足预设的预处理条件,则确定所述业务任务所属的待执行队列,将所述业务任务插入所述待执行队列,以及确定所述业务任务的任务状态为预处理状态,并将任务状态为预处理状态的业务任务保存至所述任务数据库中;
若所述业务任务不满足预设的预处理条件,则将所述业务任务的任务状态确定为未执行状态,并将该业务任务保存在所述任务数据库中。
上述的方法,可选的,所述在各个所述待执行队列中获取各个第二目标任务,包括:
在各个所述待执行队列中确定目标队列;
将在所述目标队列中位于前N个的各个第一目标任务均确定为第二目标任务。
上述的方法,可选的,所述将各个所述第二目标任务向任务使用端发送,包括:
基于各个第二目标任务,得到任务消息队列;
读取所述任务消息队列中的第一个第二目标任务,并将该第二目标任务作为当前任务;
将所述当前任务向所述任务使用端发送,并确定所述当前任务是否发送成功;
若所述当前任务发送成功,则生成表征所述当前任务发送成功的发送信息,并读取所述任务消息队列中的下一个第二目标任务,并将该第二目标任务作为当前任务,返回执行将所述当前任务向所述任务使用端发送,并确定所述当前任务是否发送成功的操作,直至读取完所述任务消息队列中的各个第二目标任务;
若所述当前任务发送不成功,则重新将所述当前任务向所述任务使用端发送,直至发送所述当前任务的次数大于或等于所述当前任务的预设次数时,生成表征所述当前任务发送失败的发送信息,并读取所述任务消息队列中的下一个第二目标任务,并将该第二目标任务作为当前任务,返回执行将所述当前任务向所述任务使用端发送,并确定所述当前任务是否发送成功的操作,直至读取完所述任务消息队列中的各个第二目标任务。
上述的方法,可选的,还包括:
对于每个所述当前任务,若所述当前任务的发送信息表征所述当前任务发送成功,则将所述当前任务确定为成功任务,并将该成功任务添加至成功队列中;若所述当前任务的发送信息表征所述当前任务发送失败,则将所述当前任务确定为失败任务,并将所述失败任务添加至失败队列中。
上述的方法,可选的,还包括:
确定所述成功队列中队列状态为未读取状态的各个成功任务,并将每个所述队列状态为未读取状态的成功任务均确定为待更新任务;
对于每个所述待更新任务,将在所述任务数据库中与该待更新任务对应的业务任务的任务状态更新为发送成功状态,并将该待更新任务的队列状态更新为已读取状态。
一种任务管理装置,包括:
第一获取单元,用于当接收到任务调度中心发送的第一调度任务时,从预先生成并保存在任务数据库中的各个业务任务中获取各个第一目标任务;
第一确定单元,用于基于每个所述第一目标任务的执行时间,确定每个所述第一目标任务在队列数据库中所属的待执行队列,以及确定每个所述第一目标任务的排序值;
添加单元,用于基于每个所述第一目标任务的排序值,将每个第一目标任务加入其所属的待执行队列中;
发送单元,用于当接收到所述任务调度中心发送的第二调度任务时,在各个所述待执行队列中获取各个第二目标任务,并将各个所述第二目标任务向任务使用端发送。
上述的装置,可选的,所述第一获取单元,包括:
第一确定子单元,用于确定所述第一调度任务的筛选时间段;
第二确定子单元,用于确定每个业务任务的执行时间;
第三确定子单元,用于将执行时间处于所述筛选时间段中的业务任务确定为筛选任务;
第四确定子单元,用于确定每个所述筛选任务的任务状态,并将任务状态为未执行状态的筛选任务确定为第一目标任务。
上述的装置,可选的,所述第一确定单元,包括:
第五确定子单元,用于确定每个所述第一目标任务的参照时间以及预设重试次数;
第一获得子单元,用于基于每个所述第一目标任务的参数时间、执行时间以及预设重试次数进行处理,得到每个所述第一目标任务的排序值。
上述的装置,可选的,包括:
第二获取单元,用于当接收到业务系统发送的任务创建请求时,获取与所述任务创建请求对应的任务数据;
生成单元,用于基于所述任务数据生成与所述任务创建请求对应的业务任务;
判断单元,用于基于所述业务任务的执行时间,判断所述业务任务是否满足预设的预处理条件;
第一保存单元,用于若所述业务任务满足预设的预处理条件,则确定所述业务任务所属的待执行队列,将所述业务任务插入所述待执行队列,以及确定所述业务任务的任务状态为预处理状态,并将任务状态为预处理状态的业务任务保存至所述任务数据库中;
第二保存单元,用于若所述业务任务不满足预设的预处理条件,则将所述业务任务的任务状态确定为未执行状态,并将该业务任务保存在所述任务数据库中。
上述的装置,可选的,所述发送单元,包括:
第六确定子单元,用于在各个所述待执行队列中确定目标队列;
第七确定子单元,用于将在所述目标队列中位于前N个的各个第一目标任务均确定为第二目标任务。
上述的装置,可选的,所述发送单元,包括:
第二获得子单元,用于基于各个第二目标任务,得到任务消息队列;
读取子单元,用于读取所述任务消息队列中的第一个第二目标任务,并将该第二目标任务作为当前任务;
第一发送子单元,用将所述当前任务向所述任务使用端发送,并确定所述当前任务是否发送成功;
生成子单元,用于若所述当前任务发送成功,则生成表征所述当前任务发送成功的发送信息,并读取所述任务消息队列中的下一个第二目标任务,并将该第二目标任务作为当前任务,返回执行将所述当前任务向所述任务使用端发送,并确定所述当前任务是否发送成功的操作,直至读取完所述任务消息队列中的各个第二目标任务;
第二发送子单元,用于若所述当前任务发送不成功,则重新将所述当前任务向所述任务使用端发送,直至发送所述当前任务的次数大于或等于所述当前任务的预设次数时,生成表征所述当前任务发送失败的发送信息,并读取所述任务消息队列中的下一个第二目标任务,并将该第二目标任务作为当前任务,返回执行将所述当前任务向所述任务使用端发送,并确定所述当前任务是否发送成功的操作,直至读取完所述任务消息队列中的各个第二目标任务。
上述的装置,可选的,包括:
添加单元,用于对于每个所述当前任务,若所述当前任务的发送信息表征所述当前任务发送成功,则将所述当前任务确定为成功任务,并将该成功任务添加至成功队列中;若所述当前任务的发送信息表征所述当前任务发送失败,则将所述当前任务确定为失败任务,并将所述失败任务添加至失败队列中。
上述的装置,可选的,包括:
第二确定单元,用于确定所述成功队列中队列状态为未读取状态的各个成功任务,并将每个所述队列状态为未读取状态的成功任务均确定为待更新任务;
更新单元,用于对于每个所述待更新任务,将在所述任务数据库中与该待更新任务对应的业务任务的任务状态更新为发送成功状态,并将该待更新任务的队列状态更新为已读取状态。
一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上所述的任务管理方法。
一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如上所述的任务管理方法。
与现有技术相比,本发明具有以下优点:
本发明提供一种任务管理方法及装置、存储介质及电子设备,该方法包括:当接收到任务调度中心发送的第一调度任务时,从预先生成并保存在任务数据库中的各个业务任务中获取各个第一目标任务;基于每个第一目标任务的执行时间,确定每个第一目标任务在队列数据库中所属的待执行队列,以及确定每个第一目标任务的排序值;基于每个第一目标任务的排序值,将每个第一目标任务加入其所属的待执行队列中;当接收到任务调度中心发送的第二调度任务时,在各个待执行队列中获取各个第二目标任务,并将各个第二目标任务向任务使用端发送。本发明基于排序值将任务加入对应的待执行队列,通过使用排序值,提高了查询任务的效率,并且使用待执行队列,实现了任务的分片管理,在待执行队列中即可确定向任务使用端发送的任务,确定任务所花费的时间短,提高了对任务的处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种任务管理方法的方法流程图;
图2为本发明实施例提供的一种任务管理方法的又一方法流程图;
图3为本发明实施例提供的一种多个待执行队列的示例图;
图4为本发明实施例提供的一种任务管理方法的再一方法流程图;
图5为本发明实施例提供的一种任务管理方法的示例图;
图6为本发明实施例提供的一种任务管理方法的另一方法流程图;
图7为本发明实施例提供的一种任务管理方法的又一示例图;
图8为本发明实施例提供的一种任务管理装置的结构示意图;
图9为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。
本发明实施例提供一种任务管理方法,该方法可应用于任务管理系统或是任务中心,本发明实施例提供的方法的执行主体为任务管理系统或是任务中心的任务处理器,具体的,任务处理器还可称为任务执行器,均用于处理任务。
参照图1,为本发明实施例提供的一种任务管理方法的方法流程图,具体说明如下所述:
S101、当接收到任务调度中心发送的第一调度任务时,从预先生成并保存在任务数据库中的各个业务任务中获取各个第一目标任务。
本发明实施例提供的方法中,任务调度中心还可称为任务调度平台,任务调度中心用于生成各种调度任务,调用任务用于触发任务执行器执行对应的任务逻辑。
在任务执行器接收到任务调度中心发送的第一调度任务时,任务执行器从任务数据库中获取各个第一目标任务,其中,任务数据库中保存了多个预先生成的业务任务。
第一调度任务中包含了选取第一目标任务的逻辑,任务执行器执行第一调度任务后,根据第一调度任务中的逻辑在任务数据库中选取各个第一目标任务,所述任务数据库具体可为MySQL数据库,参照图2,具体过程如下所述:
S201、确定第一调度任务的筛选时间段。
本发明实施例提供的方法中,筛选时间段=XT,其中,T为时间单位,具体为天、小时以及分钟等;X为正整数,表示数量。筛选时间段用于提前筛选出要执行的业务任务。
S202、确定每个业务任务的执行时间。
扫描任务数据库中的各张任务数据表,从而得到每个业务任务的执行时间。本发明实施例中的任务数据库采取分库分表设计,不同的库保存不同的任务数据表,不同的任务数据表保存不同的业务任务的任务数据。
任务数据表中保存了业务任务的任务数据,其中任务数据的数据结构的具体内容如表1所示:
表1
其中,表1中的taskId字段带有业务任务的分库分表关键基因,由该字段可确定业务任务所在的表和库,可基于业务任务的数据结构中的bizId字段和bizType字段创建业务任务唯一的、不重复的索引,由此可用于查找业务任务。
优选的,本发明实施例提供的方法中,taskId字段总长度为24位,taskId字段的组成内容和说明如表2所示;
位置 | 1-4 | 5-10 | 11-18 | 19-24 |
含义 | bizType | 分库分表位置 | 第x年/周/月/日 | hashCode |
表2
其中,1-4位:以bizType为前缀,无特殊含义,仅为区分不同业务的数据;
5-10位:分库2位,分表4位,确认该条数据将保存到哪个数据库的哪张表;
11-18位:距离某一日期的年数,周数,月数,天数;
19-24位:防重位(bizType+bizUuid).hashCode对100000取余的绝对值。
以下举例对taskId字段的结果值进行说明,表3为对taskId字段的结果值进行说明的表格;
位置 | 1-4 | 5-10 | 11-18 | 19-24 | 结果值 |
示例一 | TEST | 03 0086 | 01 08 08 08 | 65705 | TEST03008601080808657050 |
示例二 | ORDR | 11 0198 | 02 48 11 30 | 98729 | ORDR11019802481130987291 |
示例三 | TRSC | 08 0097 | 01 36 10 31 | 76920 | TRSC08009701361031769202 |
示例四 | OGMR | 04 0002 | 02 20 02 28 | 99220 | OGMR04000202200228992203 |
表3
S203、将执行时间处于所述筛选时间段中的业务任务确定为筛选任务。
通过扫描业务数据库中的每张任务数据表后,可确定每个业务任务的执行时间,通过执行时间和筛选时间段和提前筛选出要执行的业务任务。具体如T的时间单位为小时,X为2,则筛选时间段为2个小时;假设当前时间为9点整,则筛选时间段具体所指的时间为9点到11点的时间,则将执行时间处于9点到11点的业务任务均确定为筛选任务。
S204、确定每个所述筛选任务的任务状态,并将任务状态为未执行状态的筛选任务确定为第一目标任务。
在得到筛选任务后,每个筛选任务可能存在不同的任务状态,通过任务数据表中的任务数据,确定每个筛选任务的任务状态,将任务状态为未执行状态的筛选任务确定为第一目标任务。优选的,将第一目标任务在任务数据库中所对应的业务任务的任务状态更新为预处理状态。
本发明实施例提供的方法中,通过业务任务的执行时间和任务状态,确定第一目标任务,可以有效的过滤一些已经进行处理的业务任务,从而可以有效避免重复获取业务任务,进而防止重复执行业务任务,从而提高任务中心的工作效率和避免计算资源的浪费。
S102、基于每个所述第一目标任务的执行时间,确定每个所述第一目标任务在队列数据库中所属的待执行队列,以及确定每个所述第一目标任务的排序值。
本发明实施例提供的方法中,队列数据库可为基于远程字典服务(RemoteDictionary Server,Redis)构建的数据库,具体的,队列数据库可称为Redis库,其中,队列数据库中包含多个待执行队列,参照图3,为本发明实施例提供的多个待执行队列的示例图,如图3所示,有3个待执行队列,其中,不同的待执行队列对应不同的执行日期,可根据执行日期为待执行任务队列进行命名,具体如:待执行队列1的命名可为:Queue20210601,表示该执行队列中的任务均为2021年6月1号需要执行的任务;待执行队列2的命名可为Queue20210601,表示该待执行队列中的任务均为2021年6月2号需要执行的任务。优选的,待执行队列还可以以小时为单位进行命名,具体如Queue2021060100-01,表示待执行队列中保存的任务为2021年6月1号凌晨零点至一点需要执行的任务;如Queue2021060101-02,表示待执行队列中保存的任务为2021年6月1号凌晨一点至两点需要执行的任务。通过为创建不同执行时间的待执行队列,可以有效的将不同执行时间的任务进行隔离,实现了任务数据的隔离,达到任务的有序化,可优化对任务的处理过程。
本发明实施例提供的待执行队列中,各个任务均是按照任务的排序值进行排序的,按照任务的排序值进行排列时,可以根据排序值从小到大的顺序进行排列,即,排序值越小,任务排得越靠前;可选的,还可以根据排序值从大到小的顺序进行排列,即,排序值越大,任务排得越靠前;优选的,本发明实施例提供的方法按照排序值从小到大的顺序进行排列。
确定第一目标任务的排序值的过程如下所述:
确定每个所述第一目标任务的参照时间以及预设重试次数;
基于每个所述第一目标任务的参数时间、执行时间以及预设重试次数进行处理,得到每个所述第一目标任务的排序值。
在确定第一目标任务的参照时间时,可基于第一目标任务的执行时间确定参照时间,具体如取第一目标任务执行的第二天的0点作为参照时间。第一目标任务的执行时间可从任务数据表中的字段executeTime得到。
每个第一目标任务的预设重试次数均是预先设置的,均在生成该任务时就已设置完成,不同的第一目标任务的预设重试次数可以是相同的。
获取第一目标任务的排序值的代码如下所示:
Long score=executeTime.getTime()-referenceTime.getTime()+number();
其中,Long score表示排序值;executeTime.getTime()表示执行时间所对应的值;referenceTime.getTime()表示参照时间所对应的值;number()表示预设重试次数所对应的值,具体的,该值可为预设的数值,例如在每个任务的预设重试次数均为10时,number()可设置为0.10。进一步的,排序值的数据类型为Double数据类型。
为具体说明得到排序值的过程,以任务A为例子进行说明:任务的参照时间为2021-06-07 00:00:00,取其时间戳舍弃后3位(即舍弃毫秒位到秒),其该参照时间所对应的值为:1622995200;任务的执行时间为2021-06-06 10:00:00,取其时间戳舍弃最后3位(即舍弃毫秒位到秒),该执行时间所对应的值为:1622944800;任务的预设重试次数为10次,则number()为0.10;任务A的排序值=1622995200–1622944800+0.10=50400.10;由此,可得到任务A的排序值。
S103、基于每个所述第一目标任务的排序值,将每个第一目标任务加入其所属的待执行队列中。
对于每个第一目标任务,在确定该第一目标任务的所属的待执行队列和排序值后,根据该排序值和该待执行队列的排序规则,将该第一目标任务插入该待执行队列中,进一步的,排序规则具体可为待执行队列中的任务按照排序值从小到大的顺序进行排序或是按照排序值从大到小的顺序进行排序。
S104、当接收到所述任务调度中心发送的第二调度任务时,在各个所述待执行队列中获取各个第二目标任务,并将各个所述第二目标任务向任务使用端发送。
第二调度任务用于触发任务执行器将任务向任务使用端发送,其中,任务使用端为根据任务的逻辑进行业务处理的终端,任务执行器将任务向任务使用端发送时,通过调用与任务对应的业务接口向任务使用端发送。
在各个待执行队列中获取各个第二目标任务的具体过程如下所述:
在各个所述待执行队列中确定目标队列;
将在所述目标队列中位于前N个的各个第一目标任务均确定为第二目标任务。
本发明实施例提供的方法中的目标队列具体为当前需要执行的待执行队列,可根据各个待执行队列的队列名称确定目标队列,将当日需要执行的待执行队列确定为目标队列。并将目标队列中的前N个第一目标任务均确定为第二目标任务,其中,N取正整数,N的值可预先进行设置,进一步的,在目标队列中的第一目标任务的数量小于或等于N时,则将目标队列中的所有第一目标任务均确定为第二目标任务;在目标队列中的第一目标任务的数量大于N时,将目标队列中位于前N个的各个第一目标任务均确定为第二目标任务。
通过确定目标队列,进而可以快速的确定需要向任务使用端发送的任务,该过程简单不繁复,可快速提高任务处理器的处理能力,进而提高对任务的处理效率。
参照图4,为本发明实施例提供的将各个第二目标任务向任务使用端发送的方法流程图,具体说明如下所述:
S401、基于各个第二目标任务,得到任务消息队列。
按照各个第二目标任务在目标队列中排列的先后顺序,依次将各个第二目标任务放入消息队列中,从而得到任务消息队列,其中,排列在前的先放入消息队列,排列在后的后放入消息队列。
S402、读取所述任务消息队列中的第一个第二目标任务,并将该第二目标任务作为当前任务。
任务消息队列为先进先出队列,先进入的第二目标任务为任务消息队列中的第一个第二目标任务,后进入的第二目标任务为任务消息队列中的最后一个目标任务;读取任务消息队列中的第一个第二目标任务,并将该第二目标任务作为当前任务。
S403、将当前任务向任务使用端发送,并确定当前任务是否发送成功;若所述当前任务发送成功,则执行S404;若所述当前任务发送不成功,则执行S405。
S404、生成表征所述当前任务发送成功的发送信息。
本发明实施例提供的方法中,在生成表征当前任务发送成功的发送信息后,继续执行S406。在当前任务向任务使用端成功发送时,将当前任务在任务数据库中所对应的业务任务的任务状态更新为发送成功。
S405、重新将所述当前任务向所述任务使用端发送,直至发送所述当前任务的次数大于或等于所述当前任务的预设次数时,生成表征所述当前任务发送失败的发送信息。
本发明实施例提供的预设次数为将当前任务向任务使用端发送的次数,在将当前任务向任务使用端发送的次数大于预设次数后,可直接确定的当前任务发送失败;预设次数可根据实际需求进行设置,其中,此处的预设次数与上文提及的预设重试次数相同,均为当前任务最多可发送的次数。在重新将当前任务向任务使用端发送的过程中,将当前任务在任务数据库中所对应的业务任务的任务状态更新为重试中。
本发明实施例提供的方法中,在执行S405后,继续执行S406。
S406、确定是否读取完任务消息队列中的各个第二目标任务;若未读取完所述任务消息队列中的各个第二目标任务,则执行S407;若读取完所述任务消息队列中的各个第二目标任务,则执行S408。
确定是否读取完任务消息队列中的各个第二目标任务,是为了确定任务消息队列中的各个第二目标任务是都均已被读取。
S407、读取所述任务消息队列中的下一个第二目标任务,并将该第二目标任务作为当前任务。
本发明实施例提供的方法中,在执行S407后,返回执行S403。
S408、将任务消息队列删除。
在读取完任务消息队列中的各个第二目标任务后,结束向任务使用端发送第二目标任务的流程,并将该任务消息队列删除。
本发明实施例提供的方法中,通过生成任务消息队列,可以有序的将各个第二目标任务向任务使用端发送,由此可以保证任务发送的有序性,并且在发送任务的过程中,任务可多次发送,由此可以提高发送过程中出错的容错率,进一步提高了任务发送成功的概率。
进一步的,对于每个当前任务,若所述当前任务的发送信息表征所述当前任务发送成功,则将所述当前任务确定为成功任务,并将该成功任务添加至成功队列中;若所述当前任务的发送信息表征所述当前任务发送失败,则将所述当前任务确定为失败任务,并将所述失败任务添加至失败队列中。参照图5,为本发明实施例提供一种任务入队的场景实例图,如图所示,从目标队列中选出任务后生成任务消息队列,将任务消息队列中发送成功的任务加入成功队列中,将任务消息队列中发送失败的任务加入失败队列中。
通过将发送成功的任务加入到成功队列中,将发送失败的任务加入到失败队列中,可将发送成功的任务和发送失败的任务进行区别,对于失败队列中的各个失败任务,系统可向工作人员发出报警,使得工作人员对失败任务进行处理;对于成功队列,确定所述成功队列中队列状态为未读取状态的各个成功任务,并将每个所述队列状态为未读取状态的成功任务均确定为待更新任务;对于每个所述待更新任务,将在所述任务数据库中与该待更新任务对应的业务任务的任务状态更新为发送成功状态,并将该待更新任务的队列状态更新为已读取状态,由此可见任务数据库中的业务任务的任务状态进行同步,可以及时的将任务数据库中的各个业务任务的任务状态进行更新,防止重复执行业务任务。
本发明实施例提供的方法中,当接收到任务调度中心发送的第一调度任务时,从预先生成并保存在任务数据库中的各个业务任务中获取各个第一目标任务;基于每个第一目标任务的执行时间,确定每个第一目标任务在队列数据库中所属的待执行队列,以及确定每个第一目标任务的排序值;基于每个第一目标任务的排序值,将每个第一目标任务加入其所属的待执行队列中;当接收到任务调度中心发送的第二调度任务时,在各个待执行队列中获取各个第二目标任务,并将各个第二目标任务向任务使用端发送。将从任务数据库中获取的各个第一目标任务加入其所属的待执行队列,实现了任务的分片处理,只需在待执行队列中确定需要向任务使用端发送的各个第二目标任务,有效减少了确定任务所需的时间,通过分片管理任务,可以有效的提高对任务处理的效率,并且使得计算资源得到有效的利用,提高了对任务处理的吞吐量。
参照图6,为本发明实施例提供业务任务生成的方法流程图,具体说明如下所述:
S601、当接收到业务系统发送的任务创建请求时,获取与所述任务创建请求对应的任务数据。
业务系统可通过调度中心向任务执行器发送任务创建指令,任务数据中包含任务的任务业务数据、执行时间、执行状态、重试次数等数据。
S602、基于所述任务数据生成与所述任务创建请求对应的业务任务。
业务任务具体可为定时任务,例如:用户在商城提交的未支付订单将在1小时后自动关闭,将预先生成一个1小时后执行订单关闭的任务,该任务即为业务任务;又如用户的会员账户中未使用的积分将在2021-12-31 23:59:59过期作废,将预先生成一个在2021-12-31 23:59:59执行的任务,将用户未使用的会员积分作废,该任务为业务任务。
S603、基于业务任务的执行时间,判断业务任务是否满足预设的预处理条件;若所述业务任务满足预设的预处理条件,则执行S604;若所述业务任务不满足预设的预处理条件,则执行S605。
业务任务满足预处理条件的情况为:业务任务的执行时间处于预处理条件的预处理时间段内,其中预处理时间段的时间单位可用天、时或是分钟表示;例如预处理时间段为2个小时内,假设当前时间为上午10点,预处理时间段所对应的具体时间为10点到12点,当业务任务的执行时间为10点10分时,确定业务任务满足预处理条件;当业务任务的执行时间为13点时,确定业务任务不满足预处理条件。
S604、确定所述业务任务所属的待执行队列,将所述业务任务插入所述待执行队列,以及确定所述业务任务的任务状态为预处理状态,并将任务状态为预处理状态的业务任务保存至所述任务数据库中。
本发明实施例提供的方法中,在确定业务任务满足预处理条件后,确定业务任务在队列数据库中所述的待执行队列,并确定业务任务的排列值,并基于业务任务的排列值,将该业务任务插入待执行对列中,确定业务任务的排列值的过程可参照上文的说明,此处不再进行赘述。
将业务任务的任务状态确定为预处理状态,并将任务状态为预处理状态的业务任务保存至任务数据库中,以保证任务数据库中记录了全部的任务的数据,确保任务数据库中数据的完整和全面。
S605、将所述业务任务的任务状态确定为未执行状态,并将该业务任务保存在所述任务数据库中。
在确定业务任务不满足预处理条件时,将业务任务的任务状态确定为未执行状态,并将该业务任务保存在任务数据库中。
本发明实施例提供的方法中,在生成业务任务后,确定业务数据是否满足预处理条件,若满足,则将业务任务插入与其对应的待处理队列中,以及将业务任务保存至任务数据库中;若不满足,则将业务任务保存至任务数据库中。在生成业务任务后,在业务任务满足预处理条件下,将业务任务插入待处理队列中,使得业务任务可以及时的被处理,防止错过业务任务。
参照图7,为本发明实施例提供的一种任务管理方法的流程图,具体说明如下所述:
如图7所示,图中包含了调度中心、任务执行器、任务数据库、队列数据库、消息队列中间件以及任务使用端;图中包含3部分,一种是生成任务的过程,一种是任务入队的过程一种是任务发送的过程。
在生成任务的过程中,任务执行器接收到业务系统通过调度中心发送的任务创建指令,任务执行器查询任务数据库,获取任务数据后生成任务,在生成任务后,还需要确定任务是否需要入队,若任务需要入队时,则将任务存入待执行队列和任务数据库中,若任务不需要入队,则将任务保存在任务数据库中。
在任务入队的过程中,任务执行器接收到调度中心发送的调度任务后,查询任务数据库中待执行的任务,由此可得到任务数据库返回的待执行的任务,并将待执行的任务存入对应的待执行队列中。
在任务发送的过程中,任务执行器接收到调度中心发送的调度任务后,在对列数据库中查询待执行的任务,以从队列数据库中获取待执行的任务;将获取到的待执行的任务向消息队列中间件发送任务,使得消息队列中间件将任务向任务使用端发送,任务使用端在接收到任务后,执行与任务对应的处理业务逻辑。
本发明实施例提供的方法中,当接收到任务调度中心发送的第一调度任务时,从预先生成并保存在任务数据库中的各个业务任务中获取各个第一目标任务;基于每个第一目标任务的执行时间,确定每个第一目标任务在队列数据库中所属的待执行队列,以及确定每个所述第一目标任务的排序值;基于每个所述第一目标任务的排序值,将每个第一目标任务加入其所属的待执行队列中;当接收到所述任务调度中心发送的第二调度任务时,在各个所述待执行队列中获取各个第二目标任务,并将各个所述第二目标任务向任务使用端发送。本发明将从任务数据库中获取的各个第一目标任务加入与其对应的待执行队列中,在将第一目标任务加入待执行队列时,是根据第一目标任务的排序值进行添加的,可快速和准确的查询到任务,进而提高查询任务的效率,并且先对部分任务进行处理,将部分任务先加入待执行队列中,实现了任务的分块管理,使得对任务的管理更加的有序化,进而可以提高对任务处理的效率。
与图1所示的方法相对应的,本发明实施例提供一种任务管理装置,该装置可应用于任务处理中心,该装置用于支持本发明提供的方法在现实生活中的应用,该装置的结构示意图如图8所示,具体说明如下所述:
第一获取单元801,用于当接收到任务调度中心发送的第一调度任务时,从预先生成并保存在任务数据库中的各个业务任务中获取各个第一目标任务;
第一确定单元802,用于基于每个所述第一目标任务的执行时间,确定每个所述第一目标任务在队列数据库中所属的待执行队列,以及确定每个所述第一目标任务的排序值;
添加单元803,用于基于每个所述第一目标任务的排序值,将每个第一目标任务加入其所属的待执行队列中;
发送单元804,用于当接收到所述任务调度中心发送的第二调度任务时,在各个所述待执行队列中获取各个第二目标任务,并将各个所述第二目标任务向任务使用端发送。
本发明实施例提供的装置中,当接收到任务调度中心发送的第一调度任务时,从预先生成并保存在任务数据库中的各个业务任务中获取各个第一目标任务;基于每个第一目标任务的执行时间,确定每个第一目标任务在队列数据库中所属的待执行队列,以及确定每个所述第一目标任务的排序值;基于每个所述第一目标任务的排序值,将每个第一目标任务加入其所属的待执行队列中;当接收到所述任务调度中心发送的第二调度任务时,在各个所述待执行队列中获取各个第二目标任务,并将各个所述第二目标任务向任务使用端发送。本发明将从任务数据库中获取的各个第一目标任务加入与其对应的待执行队列中,在将第一目标任务加入待执行队列时,是根据第一目标任务的排序值进行添加的,以便后续快速和准确的查询到任务,进而提高查询任务的效率,本发明先对部分任务进行处理,将部分任务先加入待执行队列中,实现了任务的分块管理,使得对任务的管理更加的有序化,减少了系统的处理压力进而增加了系统处理任务的吞吐量,并且还有效提高了对任务处理的效率。
本发明实施例提供的装置,所述第一获取单元801,可以配置为:
第一确定子单元,用于确定所述第一调度任务的筛选时间段;
第二确定子单元,用于确定每个业务任务的执行时间;
第三确定子单元,用于将执行时间处于所述筛选时间段中的业务任务确定为筛选任务;
第四确定子单元,用于确定每个所述筛选任务的任务状态,并将任务状态为未执行状态的筛选任务确定为第一目标任务。
本发明实施例提供的装置,所述第一确定单元802,可以配置为:
第五确定子单元,用于确定每个所述第一目标任务的参照时间以及预设重试次数;
第一获得子单元,用于基于每个所述第一目标任务的参数时间、执行时间以及预设重试次数进行处理,得到每个所述第一目标任务的排序值。
本发明实施例提供的装置,还可以配置为:
第二获取单元,用于当接收到业务系统发送的任务创建请求时,获取与所述任务创建请求对应的任务数据;
生成单元,用于基于所述任务数据生成与所述任务创建请求对应的业务任务;
判断单元,用于基于所述业务任务的执行时间,判断所述业务任务是否满足预设的预处理条件;
第一保存单元,用于若所述业务任务满足预设的预处理条件,则确定所述业务任务所属的待执行队列,将所述业务任务插入所述待执行队列,以及确定所述业务任务的任务状态为预处理状态,并将任务状态为预处理状态的业务任务保存至所述任务数据库中;
第二保存单元,用于若所述业务任务不满足预设的预处理条件,则将所述业务任务的任务状态确定为未执行状态,并将该业务任务保存在所述任务数据库中。
本发明实施例提供的装置,所述发送单元804,可以配置为:
第六确定子单元,用于在各个所述待执行队列中确定目标队列;
第七确定子单元,用于将在所述目标队列中位于前N个的各个第一目标任务均确定为第二目标任务。
本发明实施例提供的装置,所述发送单元804,可以配置为:
第二获得子单元,用于基于各个第二目标任务,得到任务消息队列;
读取子单元,用于读取所述任务消息队列中的第一个第二目标任务,并将该第二目标任务作为当前任务;
第一发送子单元,用将所述当前任务向所述任务使用端发送,并确定所述当前任务是否发送成功;
生成子单元,用于若所述当前任务发送成功,则生成表征所述当前任务发送成功的发送信息,并读取所述任务消息队列中的下一个第二目标任务,并将该第二目标任务作为当前任务,返回执行将所述当前任务向所述任务使用端发送,并确定所述当前任务是否发送成功的操作,直至读取完所述任务消息队列中的各个第二目标任务;
第二发送子单元,用于若所述当前任务发送不成功,则重新将所述当前任务向所述任务使用端发送,直至发送所述当前任务的次数大于或等于所述当前任务的预设次数时,生成表征所述当前任务发送失败的发送信息,并读取所述任务消息队列中的下一个第二目标任务,并将该第二目标任务作为当前任务,返回执行将所述当前任务向所述任务使用端发送,并确定所述当前任务是否发送成功的操作,直至读取完所述任务消息队列中的各个第二目标任务。
本发明实施例提供的装置,还可以配置为:
添加单元,用于对于每个所述当前任务,若所述当前任务的发送信息表征所述当前任务发送成功,则将所述当前任务确定为成功任务,并将该成功任务添加至成功队列中;若所述当前任务的发送信息表征所述当前任务发送失败,则将所述当前任务确定为失败任务,并将所述失败任务添加至失败队列中。
本发明实施例提供的装置,还可以配置为:
第二确定单元,用于确定所述成功队列中队列状态为未读取状态的各个成功任务,并将每个所述队列状态为未读取状态的成功任务均确定为待更新任务;
更新单元,用于对于每个所述待更新任务,将在所述任务数据库中与该待更新任务对应的业务任务的任务状态更新为发送成功状态,并将该待更新任务的队列状态更新为已读取状态。
本发明实施例还提供了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行以下操作:
当接收到任务调度中心发送的第一调度任务时,从预先生成并保存在任务数据库中的各个业务任务中获取各个第一目标任务;
基于每个所述第一目标任务的执行时间,确定每个所述第一目标任务在队列数据库中所属的待执行队列,以及确定每个所述第一目标任务的排序值;
基于每个所述第一目标任务的排序值,将每个第一目标任务加入其所属的待执行队列中;
当接收到所述任务调度中心发送的第二调度任务时,在各个所述待执行队列中获取各个第二目标任务,并将各个所述第二目标任务向任务使用端发送。
本发明实施例还提供了一种电子设备,其结构示意图如图9所示,具体包括存储器901,以及一个或者一个以上的指令902,其中一个或者一个以上指令902存储于存储器901中,且经配置以由一个或者一个以上处理器903执行所述一个或者一个以上指令902进行以下操作:
当接收到任务调度中心发送的第一调度任务时,从预先生成并保存在任务数据库中的各个业务任务中获取各个第一目标任务;
基于每个所述第一目标任务的执行时间,确定每个所述第一目标任务在队列数据库中所属的待执行队列,以及确定每个所述第一目标任务的排序值;
基于每个所述第一目标任务的排序值,将每个第一目标任务加入其所属的待执行队列中;
当接收到所述任务调度中心发送的第二调度任务时,在各个所述待执行队列中获取各个第二目标任务,并将各个所述第二目标任务向任务使用端发送。
上述各个实施例的具体实施过程及其衍生方式,均在本发明的保护范围之内。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (11)
1.一种任务管理方法,其特征在于,包括:
当接收到任务调度中心发送的第一调度任务时,从预先生成并保存在任务数据库中的各个业务任务中获取各个第一目标任务;
基于每个所述第一目标任务的执行时间,确定每个所述第一目标任务在队列数据库中所属的待执行队列,以及确定每个所述第一目标任务的排序值;
基于每个所述第一目标任务的排序值,将每个第一目标任务加入其所属的待执行队列中;
当接收到所述任务调度中心发送的第二调度任务时,在各个所述待执行队列中获取各个第二目标任务,并将各个所述第二目标任务向任务使用端发送。
2.根据权利要求1所述的方法,其特征在于,所述从预先生成并保存在任务数据库中的各个业务任务中获取各个第一目标任务,包括:
确定所述第一调度任务的筛选时间段;
确定每个业务任务的执行时间;
将执行时间处于所述筛选时间段中的业务任务确定为筛选任务;
确定每个所述筛选任务的任务状态,并将任务状态为未执行状态的筛选任务确定为第一目标任务。
3.根据权利要求1所述的方法,其特征在于,所述确定每个所述第一目标任务的排序值,包括:
确定每个所述第一目标任务的参照时间以及预设重试次数;
基于每个所述第一目标任务的参数时间、执行时间以及预设重试次数进行处理,得到每个所述第一目标任务的排序值。
4.根据权利要求1所述的方法,其特征在于,业务任务的生成过程,包括:
当接收到业务系统发送的任务创建请求时,获取与所述任务创建请求对应的任务数据;
基于所述任务数据生成与所述任务创建请求对应的业务任务;
基于所述业务任务的执行时间,判断所述业务任务是否满足预设的预处理条件;
若所述业务任务满足预设的预处理条件,则确定所述业务任务所属的待执行队列,将所述业务任务插入所述待执行队列,以及确定所述业务任务的任务状态为预处理状态,并将任务状态为预处理状态的业务任务保存至所述任务数据库中;
若所述业务任务不满足预设的预处理条件,则将所述业务任务的任务状态确定为未执行状态,并将该业务任务保存在所述任务数据库中。
5.根据权利要求1所述的方法,其特征在于,所述在各个所述待执行队列中获取各个第二目标任务,包括:
在各个所述待执行队列中确定目标队列;
将在所述目标队列中位于前N个的各个第一目标任务均确定为第二目标任务。
6.根据权利要求1所述的方法,其特征在于,所述将各个所述第二目标任务向任务使用端发送,包括:
基于各个第二目标任务,得到任务消息队列;
读取所述任务消息队列中的第一个第二目标任务,并将该第二目标任务作为当前任务;
将所述当前任务向所述任务使用端发送,并确定所述当前任务是否发送成功;
若所述当前任务发送成功,则生成表征所述当前任务发送成功的发送信息,并读取所述任务消息队列中的下一个第二目标任务,并将该第二目标任务作为当前任务,返回执行将所述当前任务向所述任务使用端发送,并确定所述当前任务是否发送成功的操作,直至读取完所述任务消息队列中的各个第二目标任务;
若所述当前任务发送不成功,则重新将所述当前任务向所述任务使用端发送,直至发送所述当前任务的次数大于或等于所述当前任务的预设次数时,生成表征所述当前任务发送失败的发送信息,并读取所述任务消息队列中的下一个第二目标任务,并将该第二目标任务作为当前任务,返回执行将所述当前任务向所述任务使用端发送,并确定所述当前任务是否发送成功的操作,直至读取完所述任务消息队列中的各个第二目标任务。
7.根据权利要求6所述的方法,其特征在于,还包括:
对于每个所述当前任务,若所述当前任务的发送信息表征所述当前任务发送成功,则将所述当前任务确定为成功任务,并将该成功任务添加至成功队列中;若所述当前任务的发送信息表征所述当前任务发送失败,则将所述当前任务确定为失败任务,并将所述失败任务添加至失败队列中。
8.根据权利要求7所述的方法,其特征在于,还包括:
确定所述成功队列中队列状态为未读取状态的各个成功任务,并将每个所述队列状态为未读取状态的成功任务均确定为待更新任务;
对于每个所述待更新任务,将在所述任务数据库中与该待更新任务对应的业务任务的任务状态更新为发送成功状态,并将该待更新任务的队列状态更新为已读取状态。
9.一种任务管理装置,其特征在于,包括:
第一获取单元,用于当接收到任务调度中心发送的第一调度任务时,从预先生成并保存在任务数据库中的各个业务任务中获取各个第一目标任务;
第一确定单元,用于基于每个所述第一目标任务的执行时间,确定每个所述第一目标任务在队列数据库中所属的待执行队列,以及确定每个所述第一目标任务的排序值;
添加单元,用于基于每个所述第一目标任务的排序值,将每个第一目标任务加入其所属的待执行队列中;
发送单元,用于当接收到所述任务调度中心发送的第二调度任务时,在各个所述待执行队列中获取各个第二目标任务,并将各个所述第二目标任务向任务使用端发送。
10.一种存储介质,其特征在于,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如权利要求1~8任意一项所述的任务管理方法。
11.一种电子设备,其特征在于,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如权利要求1~8任意一项所述的任务管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111176124.1A CN113806058A (zh) | 2021-10-09 | 2021-10-09 | 任务管理方法及装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111176124.1A CN113806058A (zh) | 2021-10-09 | 2021-10-09 | 任务管理方法及装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113806058A true CN113806058A (zh) | 2021-12-17 |
Family
ID=78897466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111176124.1A Pending CN113806058A (zh) | 2021-10-09 | 2021-10-09 | 任务管理方法及装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113806058A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115391052A (zh) * | 2022-10-26 | 2022-11-25 | 上海擎朗智能科技有限公司 | 一种机器人任务处理方法、装置、电子设备和存储介质 |
WO2023116573A1 (zh) * | 2021-12-24 | 2023-06-29 | 广东利元亨智能装备股份有限公司 | 调度方法、装置、电子设备及可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170315846A1 (en) * | 2015-01-16 | 2017-11-02 | Huawei Technologies Co., Ltd. | Task scheduling method and apparatus on heterogeneous multi-core reconfigurable computing platform |
CN109634733A (zh) * | 2018-12-13 | 2019-04-16 | 成都四方伟业软件股份有限公司 | 任务调度管理方法、装置及运维管理服务器 |
CN109766167A (zh) * | 2017-11-09 | 2019-05-17 | 阿里巴巴集团控股有限公司 | 定时任务分发的方法、装置、系统及设备 |
US20190369919A1 (en) * | 2018-05-29 | 2019-12-05 | Mediatek Singapore Pte. Ltd. | Task management method and host for electronic storage device |
WO2019237593A1 (zh) * | 2018-06-13 | 2019-12-19 | 平安科技(深圳)有限公司 | 任务处理方法、装置、计算机设备及存储介质 |
CN111831420A (zh) * | 2020-07-20 | 2020-10-27 | 北京百度网讯科技有限公司 | 用于任务调度的方法、装置、电子设备及计算机可读存储介质 |
CN112395067A (zh) * | 2020-12-04 | 2021-02-23 | 深圳前海微众银行股份有限公司 | 任务调度方法、系统、设备及介质 |
CN113448712A (zh) * | 2021-07-12 | 2021-09-28 | 中国银行股份有限公司 | 任务调度执行方法及装置 |
-
2021
- 2021-10-09 CN CN202111176124.1A patent/CN113806058A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170315846A1 (en) * | 2015-01-16 | 2017-11-02 | Huawei Technologies Co., Ltd. | Task scheduling method and apparatus on heterogeneous multi-core reconfigurable computing platform |
CN109766167A (zh) * | 2017-11-09 | 2019-05-17 | 阿里巴巴集团控股有限公司 | 定时任务分发的方法、装置、系统及设备 |
US20190369919A1 (en) * | 2018-05-29 | 2019-12-05 | Mediatek Singapore Pte. Ltd. | Task management method and host for electronic storage device |
WO2019237593A1 (zh) * | 2018-06-13 | 2019-12-19 | 平安科技(深圳)有限公司 | 任务处理方法、装置、计算机设备及存储介质 |
CN109634733A (zh) * | 2018-12-13 | 2019-04-16 | 成都四方伟业软件股份有限公司 | 任务调度管理方法、装置及运维管理服务器 |
CN111831420A (zh) * | 2020-07-20 | 2020-10-27 | 北京百度网讯科技有限公司 | 用于任务调度的方法、装置、电子设备及计算机可读存储介质 |
CN112395067A (zh) * | 2020-12-04 | 2021-02-23 | 深圳前海微众银行股份有限公司 | 任务调度方法、系统、设备及介质 |
CN113448712A (zh) * | 2021-07-12 | 2021-09-28 | 中国银行股份有限公司 | 任务调度执行方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023116573A1 (zh) * | 2021-12-24 | 2023-06-29 | 广东利元亨智能装备股份有限公司 | 调度方法、装置、电子设备及可读存储介质 |
CN115391052A (zh) * | 2022-10-26 | 2022-11-25 | 上海擎朗智能科技有限公司 | 一种机器人任务处理方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180173751A1 (en) | Log file management tool | |
US7487427B2 (en) | Interface workbench for high volume data buffering and connectivity | |
US8903925B2 (en) | Scheduled messages in a scalable messaging system | |
CN113806058A (zh) | 任务管理方法及装置、存储介质及电子设备 | |
US8719825B2 (en) | Prompting for execution or delay of scheduled job | |
JP2014528126A (ja) | 複数のターゲットへのマルチソースプッシュ通知の分配 | |
KR20130126930A (ko) | 텍스트 메시지를 사용하는 스프레드시트와의 상호작용 | |
US11451534B2 (en) | Secure, cloud-based data collection tool | |
US20100082391A1 (en) | Method, device, and system for appointment messaging | |
US10430732B2 (en) | Project management task updater | |
CN110851324B (zh) | 基于日志的巡检处理方法、装置以及电子设备、存储介质 | |
CN113127564B (zh) | 一种参数同步方法和装置 | |
US11468107B2 (en) | Enhance a mail application to format a long email conversation for easy consumption | |
CN108833584B (zh) | 消息推送方法、终端、服务器及计算机存储介质 | |
CN113760513A (zh) | 一种分布式任务调度方法、装置、设备和介质 | |
CN116502877A (zh) | 项目进度监控方法、装置、电子设备和可读存储介质 | |
CN115185787A (zh) | 处理事务日志的方法及装置 | |
US10609120B2 (en) | Customized, cloud-based data collection tool | |
US20200210483A1 (en) | Enhance a mail application to generate a weekly status report | |
CN116306508A (zh) | 一种日期数据转换方法及装置 | |
US20150154560A1 (en) | Optimal prioritization of business listings for moderation | |
CN111782373B (zh) | 作业调度方法及装置 | |
CN110532108B (zh) | 简历投递任务的处理方法、装置、服务器和系统 | |
CN113485742A (zh) | 主机应用版本登记方法及装置 | |
CN113377604B (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 |