任务处理方法、装置、系统、电子设备及存储介质制造方法及图纸

技术编号:29802232 阅读:16 留言:0更新日期:2021-08-24 18:24
本申请公开了一种任务处理方法、装置、系统、电子设备及存储介质,涉及数据处理技术领域。其中,该方法包括:任务服务单元将多个定时任务分配到多个数据库,其中,每个定时任务对应一个执行时间,每个执行时间在一个任务周期内;在每个任务周期,多个任务执行单元获取所述多个数据库中执行时间在当前任务周期内的定时任务,其中,不同的任务执行单元读取的定时任务不同;每个任务执行单元执行获取到的定时任务,从而降低单个任务执行单元的处理压力,防止定时任务堆积。

【技术实现步骤摘要】
【国外来华专利技术】任务处理方法、装置、系统、电子设备及存储介质
本申请涉及数据处理
,更具体地,涉及一种任务处理方法、装置、系统、电子设备及存储介质。
技术介绍
在移动终端、服务器等设备的各种数据处理中,经常涉及到对定时任务的处理。通常的,定时任务通过任务执行进程进行处理,而相关技术中,任务执行进程对定时任务执行的处理压力加大,容易造成任务堆积。
技术实现思路
鉴于上述问题,本申请提出了一种任务处理方法、装置、系统、电子设备及存储介质,以改善上述问题。第一方面,本申请实施例提供了一种任务处理方法,所述方法包括:务服务单元将多个定时任务分配到多个数据库,其中,每个定时任务对应一个执行时间;在每个任务周期,多个任务执行单元获取所述多个数据库中执行时间在当前任务周期内的定时任务,其中,不同的任务执行单元读取的定时任务不同;每个任务执行单元执行获取到的定时任务。第二方面,本申请实施例提供了一种任务处理系统,所述系统包括任务服务单元、任务执行单元以及数据库,其中,所述任务服务单元用于将多个定时任务分配到多个数据库,其中,每个定时任务对应一个执行时间;在每个任务周期,多个任务执行单元获取所述多个数据库中执行时间在当前任务周期内的定时任务,其中,不同的任务执行单元读取的定时任务不同;每个任务执行单元执行获取到的定时任务。第三方面,本申请实施例提供了一种任务处理装置,所述装置包括:任务服务单元,用于将多个定时任务分配到多个数据库,其中,每个定时任务对应一个执行时间;在每个任务周期,多个任务执行单元用于获取所述多个数据库中执行时间在当前任务周期内的定时任务,其中,不同的任务执行单元读取的定时任务不同;每个任务执行单元还用于执行获取到的定时任务。第四方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述的方法。第五方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,所述程序代码可被处理器调用执行上述的方法。本申请实施例提供的任务处理方法、装置、系统、电子设备及存储介质,将多个定时任务分配到多个数据库,并且设置有多个任务执行单元。在每个任务周期内,由多个任务执行单元从多个数据库中获取当前任务周期内的定时任务,每个定时任务由获取到该定时任务的任务执行单元执行,从而降低单个任务执行单元的处理压力,防止定时任务堆积。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出了本申请一实施例提供的任务处理方法中的数据流向图。图2示出了本申请一实施例提供的任务处理方法的流程图。图3示出了本申请另一实施例提供的任务处理方法中的数据流向图。图4示出了本申请另一实施例提供的任务处理方法中的另一数据流向图。图5示出了本申请另一实施例提供的任务处理方法的流程图。图6示出了本申请实施例提供的任务处理装置的功能模块图。图7示出了本申请实施例提供的任务处理系统的结构示意图。图8示出了本申请实施例提供的电子设备的结构框图。图9是本申请实施例的用于保存或者携带实现根据本申请实施例的任务处理方法的程序代码的存储单元。具体实施方式为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。定时任务是需要定期执行的任务,如定期统计数据或者删除数据等。当定时任务周期性执行时,定时任务可以有一个执行时间以及一个执行周期。该执行时间为对定时任务开始执行、或者说开始处理的时间,该执行周期为相邻两次执行时间之间的间隔时间。在每个执行时间将定时任务执行后,该执行时间加执行周期后的时间作为下一次对该定时任务进行执行的执行时间。如某定时任务开始执行的时间是t1,周期是c1,则t1时是该定时任务的执行时间,对其进行执行后,下一执行时间为t1+c1,在t1+c1这一时间对其执行后,下一执行时间为t1+c1+c1,以此类推。其中,不同定时任务的执行周期可以是不同的,不同定时任务的执行时间可以是不同的,不同定时任务的执行时间的相同或不同、不同定时任务执行周期的相同或不同,可以由各个定时任务本身决定,并不受彼此的影响。相关技术中,对定时任务的处理通常具有以下两种实施方式。在一种实施方式中,通过配置文件指定多个任务执行单元中的某一个任务执行单元来执行定时任务,其他任务执行单元不对定时任务进行执行。具体由哪一个任务执行单元来执行定时任务由配置文件指定,无法进行动态调整,当任务执行进程崩溃时,所有定时任务都无法执行,需要手工修改配置文件中的配置然后重新发布,整体服务可用性差。在另一种实施方式中,引入注册中心。将各个任务执行单元注册到注册中心,由注册中心从多个任务执行单元中选出一个来执行定时任务,其他任务执行单元作为备份,不会对定时任务进行执行。当执行定时任务的任务执行单元出现异常时,注册中心可以动态切换一个其他任务执行单元来执行任务。在这些定时任务的处理方式中,存在各种问题。例如,对定时任务进行执行的执行单元通常压力较大。具体的,定时任务存储到数据库后,会启动多个任务执行单元,但只会有一个任务执行单元真正执行定时任务,其他任务执行单元充当备份节点,因此,该执行定时任务的任务执行单元数据处理压力大,且容易造成数据堆积;而充当备份节点的其他任务执行单元不执行任务,造成资源浪费。例如,进行任务执行的任务执行单元,通常将定时任务加载到内存然后慢慢执行,在加载到内存后,如果任务被删除或者发生了修改,那么已经删除的任务也会被该任务执行单元执行,或者该任务执行单元执行的任务不是最新的。例如,如果任务执行过程中进行任务执行的任务执行单元崩溃,那么在确定新的任务执行单元后,又要全量扫描数据库,导致执行时间长,数据库压力大。为了克服上述的各种缺点,专利技术人提出了本申请实施例提供的任务处理方法、装置、系统、电子设备及存储介质,将多个定时任务分配到多个数据库,并且设置多个任务执行单元。在每个任务周期内,多个任务执行单元都从数据库中获取当前任务周期内的定时任务进行执行。下面通过具体实施例对该任务处理方法、装置、系统、电子设备及存储介质进行详细说明。图1示出了本申请提供的一种实施例中的数据流向图,其中,任务服务单元将定时任务分配到多个数据库,在每个任务周期中,多个数据库中该任务周期内的定时任务再分布到各个任务执行单元进行执行。图2示出了该实施例中任务处理方法的流程图。请参见图2,该方法包括:步骤S110:任务服务单元将多个定时任务分配到多个数据库,其中,每个定时任务对应一个执行时间。在互联网活动中或者设本文档来自技高网
...

【技术保护点】
一种任务处理方法,其特征在于,所述方法包括:/n任务服务单元将多个定时任务分配到多个数据库,其中,每个定时任务对应一个执行时间;/n在每个任务周期,多个任务执行单元获取所述多个数据库中执行时间在当前任务周期内的定时任务,其中,不同的任务执行单元读取的定时任务不同;/n每个任务执行单元执行获取到的定时任务。/n

【技术特征摘要】
【国外来华专利技术】一种任务处理方法,其特征在于,所述方法包括:
任务服务单元将多个定时任务分配到多个数据库,其中,每个定时任务对应一个执行时间;
在每个任务周期,多个任务执行单元获取所述多个数据库中执行时间在当前任务周期内的定时任务,其中,不同的任务执行单元读取的定时任务不同;
每个任务执行单元执行获取到的定时任务。


根据权利要求1所述的方法,其特征在于,所述在每个任务周期,多个任务执行单元获取所述多个数据库中执行时间在当前任务周期内的定时任务,包括:
在每个任务周期,
每个任务执行单元从消息队列中获取定时任务的身份信息,作为指定的身份信息,其中,所述消息队列中身份信息为从所述多个数据库中获得的在当前任务周期内的定时任务的身份信息,在当前任务周期内的定时任务为执行时间在当前任务周期内的定时任务;
每个任务执行单元从相应的数据库中获取指定的身份信息对应的定时任务。


根据权利要求2所述的方法,其特征在于,所述每个任务执行单元从消息队列中获取定时任务的身份信息,作为指定的身份信息之前,包括:
多个任务读取单元从所述多个数据库中读取当前任务周期内的定时任务的身份信息;
每个任务读取单元将读取到的身份信息写入所述消息队列。


根据权利要求3所述的方法,其特征在于,所述方法还包括:
任务服务单元统计各个任务周期内定时任务的总数量;
所述多个任务读取单元从所述多个数据库中读取当前任务周期内的定时任务的身份信息,包括:
对于每个任务读取单元,
读取当前任务周期内定时任务的总数量;
若读取到定时任务的总数量大于0,从相应的数据库中读取当前任务周期内的定时任务的身份信息,
若读取到的定时任务的总数量等于0,等待下一任务周期。


根据权利要求3所述的方法,其特征在于,所述多个任务读取单元从所述多个数据库中读取当前任务周期内的定时任务的身份信息之前,还包括:
任务调度单元设置每个任务读取单元需要读取的数据库,作为相应的任务读取单元的读取任务。


根据权利要求5所述的方法,其特征在于,所述方法还包括:
若有任务读取单元异常退出,任务调度单元将该任务读取单元的读取任务分配给其他任务读取单元。


根据权利要求2所述的方法,其特征在于,所述任务服务单元将多个定时任务分配到多个数据库,包括:
所述任务服务单元根据预设的分片算法,将所述多个定时任务分配到多个数据库;
所述每个任务执行单元从相应的数据库中获取指定的身份信息对应的定时任务,包括:
每个任务执行单元根据预设的分片算法确定指定的身份信息对应的定时任务所存储的数据库;
从确定的数据库中获取指定的身份信息对应的定时任务。


根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:
若有定时任务被删除,任务服务单元将该定时任务的身份信息写入缓存;
所述每个任务执行单元执行获取到的定时任务之前,还包括:
对于每个任务执行单元,
根据缓存存储的身份信息判断获取到的定时任务是否是删除的定时任务;
若否,该任务执行单元执行该定时任务,
若是,该任务执行单元放弃对该定时任务的执行。


根据权利要求1-8任一项所述的方法,其特征在于,所述方法还包括:
若有定时任务被修改,任务服务单元将该定时任务的身份信息写入缓存;
所述每个任务执行单元执行获取到的定时任务之前,还包括:

【专利技术属性】
技术研发人员:成云峰
申请(专利权)人:深圳市欢太科技有限公司OPPO广东移动通信有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1