掌桥专利:专业的专利平台
掌桥专利
首页

定时任务的处理方法、装置、存储介质及电子设备

文献发布时间:2024-04-18 20:00:50


定时任务的处理方法、装置、存储介质及电子设备

技术领域

本申请涉及信息处理技术领域,更具体的说是涉及一种定时任务的处理方法、装置、存储介质及电子设备。

背景技术

目前,应用软件中的很多任务都需要利用定时技术来实现,如在多媒体应用软件中将特定多媒体资源在目标时间段内推送至用户等。但是,在执行定时任务时依赖的定时任务处理组件会存在功能不完善、执行效率低或者开发成本高等问题,无法满足实际的定时任务处理的需求。

发明内容

有鉴于此,本申请提供如下技术方案:

一种定时任务的处理方法,包括:

响应于在执行目标任务时获得定时任务调用请求,确定与所述定时任务对应的任务标识信息,所述目标任务和所述定时任务的任务内容不同;

获得与所述定时任务对应的定时参数,并将所述定时参数与所述任务标识信息进行序列化处理,得到目标信息,其中,所述定时参数表征能够确定执行所述定时任务的任务执行时间的参数;

将所述目标信息封装至所述定时任务,并将所述定时任务添加至任务队列;

响应于执行完成所述目标任务后监听所述任务队列,在所述定时任务的任务执行时间到达时,执行所述定时任务。

可选地,所述方法还包括:

对所述定时参数进行接信息,若所述定时参数为所述定时任务对应的待执行的时间点,将所述待执行的时间点确定为所述定时任务的任务执行时间;

若所述定时参数为所述定时任务的延迟执行时间段,基于接收到所述定时任务调用请求的当前时间与所述延迟执行时间段,确定所述定时任务的任务执行时间。

可选地,所述监听所述任务队列,在所述定时任务的任务执行时间到达时,执行所述定时任务,包括:

周期性地获取所述任务队列中存储的各个定时任务的任务信息;

若所述任务信息对应的任务执行时间与当前系统时间一致,执行所述定时任务。

可选地,所述执行所述定时任务,包括:

对所述定时任务的目标信息进行反序列化处理,得到与所述定时任务对应的资源信息,所述资源信息至少包括所述定时任务的任务内容信息,以及执行所述定时任务的线程信息;

调用所述资源信息,执行所述定时任务。

可选地,所述响应于在执行目标任务时获得定时任务调用请求,确定与定时任务对应的任务标识信息,包括:

响应于在执行目标时,接收到定时任务调用请求;

对所述目标任务的任务内容进行解析,获得所述目标任务的任务特征,所述任务特征至少包括所述目标任务的任务对象以及任务类型;

基于所述目标任务的任务特征,确定与所述调用请求对应的定时任务;

确定与所述定时任务对应的任务标识信息。

可选地,所述将定时任务添加至任务队列,包括:

获得生成各个定时任务时触发的任务消息,所述任务消息表征发送给RocketMQ服务器的消息,所述任务消息至少由方法帧、内容头帧和消息体帧组成;

基于所述任务消息在数据中间件中创建任务队列,其中,所述数据中间件为基于RocketMQ创建;

将所述定时任务添加至所述任务队列。

一种定时任务的处理装置,包括:

确定单元,用于响应于在执行目标任务时获得定时任务调用请求,确定与所述定时任务对应的任务标识信息,所述目标任务和所述定时任务的任务内容不同;

处理单元,用于获得与所述定时任务对应的定时参数,并将所述定时参数与所述任务标识信息进行序列化处理,得到目标信息,其中,所述定时参数表征能够确定执行所述定时任务的任务执行时间的参数;

添加单元,用于将所述目标信息封装至所述定时任务,并将所述定时任务添加至任务队列;

执行单元,用于响应于执行完成所述目标任务后监听所述任务队列,在所述定时任务的任务执行时间到达时,执行所述定时任务。

可选地,所述装置还包括:

解析单元,用于对所述定时参数进行解析,若所述定时参数为所述定时任务对应的待执行的时间点,将所述待执行的时间点确定为所述定时任务的任务执行时间;

执行时间确定单元,用于若所述定时参数为所述定时任务的延迟执行时间段,基于接收到所述定时任务调用请求的当前时间与所述延迟执行时间段,确定所述定时任务的任务执行时间。

一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述中任一项所述的定时任务的处理方法。

一种电子设备,所述电子设备包括:

存储器,用于存储应用程序和所述应用程序运行所产生的数据;

处理器,用于执行所述应用程序,以实现如上述中任一项所述的定时任务的处理方法。

经由上述的技术方案可知,本申请公开了一种定时任务的处理方法、装置、存储介质及电子设备,该方法包括:响应于在执行目标任务时获得定时任务调用请求,确定与定时任务对应的任务标识信息,目标任务和定时任务的任务内容不同;获得与定时任务对应的定时参数,并将定时参数与任务标识信息进行序列化处理,得到目标信息,其中,定时参数表征能够确定执行定时任务的执行时间的参数;将目标信息封装至定时任务,并将定时任务添加至任务队列;响应于执行完成目标任务后监听任务队列,在定时任务的任务执行时间到达时,执行定时任务。在本申请中可以在执行目标任务时设置定时任务的定时参数,基于该定时参数执行定时任务,无需在目标任务执行后重新分析目标任务的特征再确定定时任务,节约了定时任务的开发成本,提升了开发效率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的一种定时任务的处理方法的流程示意图;

图2为本申请实施例提供的一种应用场景的示意图;

图3为本申请实施例提供的一种定时任务的处理装置的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。

需要注意,本申请中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。本申请实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。

定时任务若采用Java方式实现,由于定时任务没有持久化,服务重启时会导致定时任务丢失,并且若并发执行任务较多时,可能会导致任务丢弃或者内存溢出;若直接使用消息队列实现异步化,配置繁琐,同时异步处理的生产和消费代码隔离,代码可读性差。因此,在本申请实施例中提供了一种定时任务的处理方法,该方法能够实现任务持久化,并且可以在执行目标任务的时候设置定时任务,无需重复对任务特征进行分析,可实现可靠地异步执行。参见图1,为本申请实施例提供的一种定时任务的处理方法的流程示意图,该方法可以包括以下步骤:

S101、响应于在执行目标任务时获得定时任务调用请求,确定与定时任务对应的任务标识信息。

其中,目标任务和定时任务的任务内容不同。目标任务是指当前数据处理系统正在执行的任务,该数据处理系统可以是应用程序终端系统,也可以是服务端。例如,数据处理系统可以是对视频数据进行处理及播放的系统。当数据处理系统为对视频数据进行处理及播放的视频系统,目标任务可以是新用户注册任务,还可以是VIP(veryimportantperson,重要用户)开通任务等。在本申请实施例中在执行目标任务时可以预先设置待执行的定时任务,无需等待目标任务执行完成后再定义定时任务。

具体的,可以根据在执行目标任务时获得的定时任务调用请求,确定与定时任务对应的任务标识信息。其中,定时任务调用请求可以是用户主动产生的针对定时任务的调用请求,如用户在进行新用户注册时,选择信息推送时,即可以触发信息定时推送的定时任务。对应的,用户还可以通过具体的操作来设置在特定时间段内开启某个应用程序的请求。在另一种方式中,定时任务调用请求还可以是服务端基于当前运行的目标任务的任务特征产生的定时任务的调用请求,如,当运行多媒体应用程序时执行的目标任务是新用户注册任务,服务端可以生成定时推送多媒体数据的定时任务的调用请求。

其中,定时任务是在未来某个时刻执行某个事件的任务,也可以在当前时间的基础上延时一段时间后执行某个事件的任务。与定时任务对应的任务标识信息表征该定时任务的全局唯一标识信息,如定时任务的名称或者定时任务的序列信息等。通过确定定时任务对应的任务标识信息,可以便于在该定时任务的任务执行时间到达时,通过任务标识信息调用该定时任务并执行该定时任务,提升了定时任务调用的准确性。

S102、获得与定时任务对应的定时参数,并将定时参数与任务标识进行序列化处理,得到目标信息。

定时参数表征能够确定执行定时任务的任务执行时间的参数。即通过解析该定时参数可以获得执行定时任务的执行时间,如,定时参数可以是表征该定时任务在未来某一时刻执行的执行时间,也可以是表征该定时任务的延迟执行时间,然后通过该延迟执行时间与当前系统时间,计算获得该定时任务的任务执行时间。

在本申请实施例中将定时参数与任务标识信息进行序列化处理,得到目标信息。其中,序列化处理是指将对象状态转换为可保持或传输的格式的处理方式,即将定时参数与任务标识信息进行序列化处理后得到目标信息,将目标信息应用到定时任务,可以用于远程调用或持久化存储该定时任务,从而使得能够持久化存储该定时参数,避免因为服务重启时能会导致定时参数丢失,而无法执行定时任务。

S103、将目标信息封装至定时任务,并将定时任务添加至任务队列。

将目标信息封装置定时任务可以是将目标信息封装至定时任务的配置信息中,使得在该定时任务在原有的配置信息中增加该目标信息,例如,定时任务可以是信息推送任务,将目标信息封装至该信息推送任务的配置信息后,可以基于目标信息的任务标识信息调用该信息推送任务,并且根据目标信息中的定时参数确定该信息推送任务的任务执行时间,从而使得在该任务执行时间达到时执行该信息推送任务。具体的,将目标信息封装至定时任务后,会将定时任务发送到执行的任务队列(也以称为通道),然后在通道所持有的资源(消息监听容器)内执行函数,该通道(channel)抽象了异步执行所需的生产者、消费者和线程池资源,实现了定时任务调用的资源隔离。

S104、响应于执行完成目标任务后,监听任务队列,在定时任务的任务执行时间达到时,执行定时任务。

由于定时任务是目标任务关联的任务,可以在执行完成目标任务后监听该定时任务所在的任务队列,在该定时任务的任务执行时间到达时,执行定时任务。可以采用周期性轮询任务队列中的任务来进行对任务队列中各个任务的监听,例如,每隔5个小时获取一次任务队列中各个任务的信息,来确定是否存在需要当前执行的任务。在一种实施方式中,可以通过数据中间件监听任务队列,在定时任务的执行时间到达时,可以调用执行该定时任务的目标设备执行该定时任务,通过引入数据中间件,可以通过数据中间件对各个定时任务进行缓存和分发,创建任务队列,提高定时任务的执行效率。

在本申请实施例提供了定时任务的处理方法,该方法包括:响应于在执行目标任务时获得定时任务调用请求,确定与定时任务对应的任务标识信息,目标任务和定时任务的任务内容不同;获得与定时任务对应的定时参数,并将定时参数与任务标识信息进行序列化处理,得到目标信息,其中,定时参数表征能够确定执行定时任务的执行时间的参数;将目标信息封装至定时任务,并将定时任务添加至任务队列;响应于执行完成目标任务后监听任务队列,在定时任务的任务执行时间到达时,执行定时任务。在本申请中可以在执行目标任务时设置定时任务的定时参数,基于该定时参数执行定时任务,无需在目标任务执行后重新分析目标任务的特征再确定定时任务,节约了定时任务的开发成本,提升了开发效率。同时本申请通过将定时参数与任务标识信息封装成序列化的目标信息,使得该定时参数能够在定时任务中持久化,避免因任务执行异常而无法定时执行,提升了定时任务开发的效率,降低了开发成本。

下面以具体的应用场景对本申请实施例的定时任务的处理方法进行说明。在该应用场景中该定时任务的处理方法可以应用在视频客户端,目标任务是视频客户端的新用户注册任务,定时任务是在15天后为当前注册的新用户推送热点视频的信息。具体的,当某个用户注册该视频客户端的账号时,此时会执行新用户注册的目标任务,若需要在该用户注册成功后的15天后给他推送一个站内信,以使得该用户获得当前视频客户端最新的电视剧或者电影等信息。通常的做法是,在15天后,扫描所有注册时间达到15天的用户,然后给注册时间达到15天的用户推送站内信。但是这样处理,会需要重新检测当前所有用户的注册时间,以确定哪些用户是15天前注册的,若当前视频客户端的用户较多的时候,需要获得并检测的用户注册信息较为庞大,会占用过多的处理资源,降低了处理效率。因此,在本申请实施例中在执行用户注册任务时,就会预先设置与定时任务对应的定时参数以及任务标识信息,这样可以在任务执行时间到达时自动执行定时任务。具体的,在15天前用户注册该视频客户端的账号时,就可以调用推送站内信的定时任务,并设置该定时任务的任务标识(如标识号定时任务001),然后这只该定时任务的定时参数具体可以是15天后的具体日期,例如,任务执行时间是yyyy-mm-ddhh:mm:ss。或延迟多少天执行等等。这样的话,15天后,就会自动给用户发站内信了。这样只需要给发站内信的这个定时任务确定一个定时参数就可以,而它有明确的针对对象,而无需像以前那样还要轮询一遍用户特征,降低了资源的占用。

以具体的实施方式对本申请实施例中的定时任务的处理方法的各个技术特征的实现过程进行说明。

在本申请实施例中,定时参数表征能够确定执行定时任务的任务执行时间的参数,为了能够对现有任务的时间设置参数的复用,即无需更改已有任务的代码中关于时间参数的设置部分,可以通过两种时间参数的设置格式来设置该定时参数,一种是具体的时间点,如2023年10月20日,另一种是可以设置任务延迟时间,如10天后执行该定时任务。因此,在本申请实施例中获得了定时参数后,需要根据设置该定时参数的参数格式来确定定时任务的任务执行时间。其中,对定时参数的解析过程包括:

对所述定时参数进行解析,若所述定时参数为所述定时任务对应的待执行的时间点,将所述待执行的时间点确定为所述定时任务的任务执行时间。

若所述定时参数为所述定时任务的延迟执行时间段,基于接收到所述定时任务调用请求的当前时间与所述延迟执行时间段,确定所述定时任务的任务执行时间。

因此,本申请实施例中不局限于对定时任务的定时参数的设置格式,如可以是表征定时任务执行的执行时间参数,也可以是表征定时任务延迟执行的延时时间等,实现了对已有定时任务中的时间参数格式的复用,无需重新调整定时任务对应的代码信息。举例说明,若当前系统时间为2021年5月25日18:00,则可以执行设置定时任务的待时间的时间参数,如,2021年5月27日18:00;也可以是设置该定时任务的执行延迟时间,如48小时,则计算获得该定时任务的执行时间为2021年5月27日18:00。

在本申请实施例中通过对任务队列的轮询,来控制对定时任务的执行,可以提升定时任务的执行效率以及准确性。在本申请实施例中的一种实施方式中,所述监听任务队列,在定时任务的任务执行时间到达时,执行定时任务,包括:

周期性地获取任务队列中存储的各个定时任务的任务信息;

若任务信息对应的任务执行时间与当前系统时间一致,执行定时任务。

在该实施方式中,通过定期轮询的方式来确定是否有要执行的定时任务,可以保证任务执行的准确性,同时也避免实时访问任务队列造成的资源占用和浪费的问题。其中,获得的定时任务的任务信息可以包括该定时任务的任务内容以及该定时任务的相关配置信息,具体可以包括该定时任务的任务执行时间。可以通过当前任务队列中任务的数量来确定周期性访问的时间长度,如可以是每5秒进行一次任务队列的轮询。例如,每5秒轮询一次任务队列,把未来一小时内要处理的任务,发为延迟消息,其中,延迟时间=定时任务的任务执行的时间-当前系统的时间。

进一步地,若轮询过程中存在需要在下一轮询时间之前,且在当前轮序时刻之后要执行的定时任务,可以对该定时任务进行标注,以保证在下一轮询时间之前能够执行该定时任务。

进一步地,在本申请实施例中执行定时任务,包括:

对所述定时任务的目标信息进行反序列化处理,得到与所述定时任务对应的资源信息;

调用所述资源信息,执行所述定时任务。

其中,目标信息为将定时参数与任务标识信息序列化处理得到的信息,对目标信息的反序列化处理,可以得到任务标识信息,并基于该任务标识信息获得与定时任务对应的资源信息,该资源信息至少包括定时任务的任务内容信息,以及执行所述定时任务的线程信息,具体的可以包括执行该定时任务的信息生产者、消费者和消息线程等信息,如定时任务为定时推送视频信息,其中信息生产者表征待推送的视频信息的视频来源,消费者表征将该视频信息推送至的目标客户端的信息,消息线程表征推送该视频信息时调用的线程信息。因此,可以调用该资源信息执行定时任务。

在本申请实施例的一种实施方式中,可以根据当前正在执行的目标任务的任务特征自动确定待执行的定时任务,无需用户手动确定定时任务。具体的,所述响应于在执行目标任务时获得定时任务调用请求,确定与所述定时任务对应的任务标识信息,包括:

响应于在执行目标任务时,接收到定时任务调用请求;

对所述目标任务的任务内容进行解析,获得所述目标任务的任务特征,所述任务特征至少包括所述目标任务的任务对象以及任务类型;

基于所述目标任务的任务特征,确定与所述调用请求对应的定时任务;

确定与所述定时任务对应的任务标识信息。

在执行目标任务时,接收到定时任务调用请求,可以根据目标任务的任务内容进行解析,得到任务特征。其中,目标任务的任务内容主要是指该目标任务具体执行时包括的内容,如目标任务是用户注册任务,任务内容可以包括用户注册的条件、注册信息以及注册时间等信息。对任务内容进行解析得到的任务特征至少包括目标任务的任务对象以及任务类型。目标任务的任务对象是指当前目标任务针对的对象,例如,目标任务是新用户注册,则任务对象就是新用户;若目标任务是用户特权升级任务,则任务对象可以是已注册的老用户。任务类型可以根据当前的任务内容确定的,如用户注册类型、用户信息推送类型、用户服务提升类型等。可以根据得到的任务特征自动匹配要调用的定时任务。例如,任务对象为新用户,任务类型为用户注册。匹配到的定时任务可以是信息推送任务,会员开通任务等等。对应的,在相同类型下的定时任务有多个时,也可以基于当前的任务特征来确定实际需求的定时任务。

在当前实施方式中以触发定时任务调用请求时正在执行的目标任务的任务特征来确定定时任务的过程。例如定时任务是在目标时刻进行信息推送的任务,而信息推送的任务包括对新用户的信息推送任务和对老用户的信息推送任务,若目标任务表征用户注册任务,则对应的定时任务应该是新用户的信息推送任务。这样在执行用户注册任务时,运维人员可以同步设置新用户的信息推送任务的延迟时间参数,如15天,则在该用户注册15天后,可以执行该信息推送任务,将对应的推送信息推送至用户。

为了便于对已有的数据处理架构的复用,在本申请实施例中可以通过在数据中间件创建任务队列,其中,数据中间件可以基于RocketMQ创建,RocketMQ是一个开源的分布式消息组件,在本申请实施例中可以在RocketMQ设置定时参数,即添加定时注释信息实现。具体的,在一种实施方式中,所述将所述定时任务添加至任务队列,包括:

获得生成各个定时任务时触发的任务消息,所述任务消息表征发送给RocketMQ服务器的消息,所述任务消息至少由方法帧、内容头帧和消息体帧组成;

基于所述任务消息在数据中间件中创建任务队列,其中,所述数据中间件为基于RocketMQ创建;

将所述定时任务添加至所述任务队列。

其中,任务消息可以是用户提交定时任务时,同时发送给RocketMQ服务器的消息,该消息可以由方法帧、内容头帧和消息体帧组成,其中,方法头帧携带命令和执行它所需要的参数(如交换器和路由键)、内容帧包含消息的基本属性以及消息的大小,消息体帧携带需要发送的消息内容(事件任务),通过引入数据中间件,可以通过数据中间件对多个事件任务进行缓存和分发,创建任务队列,解决了相关技术中触发事件任务不准时的技术问题,提高了延时任务和定时任务的执行效率,提高了调度服务器的利用率。

参见图2,为本申请实施例提供的一种应用场景的示意图,在该应用场景中是以RocketMQ为基础的定时任务处理方法,为能够设置定时参数的任务添加参数注解接口(如以@PersistAsync表示),以使得在调用该定时任务时,可调用该参数注解接口设置定时参数。

可以将该定时任务的处理方法封装成组件,当用户使用本组件,调用带有参数注解接口的定时任务时,组件会拦截调用请求,将定时任务的方法名和定时参数序列化后发送到执行的通道(任务队列),然后在通道所持有的资源(消息监听容器)内执行函数,通道抽象了异步执行所需的生产者、消费者和线程池资源,实现了定时任务调用的资源隔离,用户可以根据实际的情况共享或者独立的使用通道。

具体的,首先将参数序列化为字符串,再将定时任务的方法名和参数封装为消息,最后通过注解中定义的通道(channel),完成消息发送,例如,通过数据中间件模板(rocketMQ Template)发送消息。在数据中间件(Rocket MQ)收到消息后,会解析消息得到定时任务的方法名和定时参数,通过启动时注册的方法名,找对对应的类(bean)和方法(method),根据方法的采纳数类型,完成参数的反序列化,最终调用方法完成方法的异步执行。

在本申请实施例中还提供了一种定时任务的处理装置,参见图3,该装置包括:

确定单元201,用于响应于在执行目标任务时获得定时任务调用请求,确定与所述定时任务对应的任务标识信息,所述目标任务和所述定时任务的任务内容不同;

处理单元202,用于获得与所述定时任务对应的定时参数,并将所述定时参数与所述任务标识信息进行序列化处理,得到目标信息,其中,所述定时参数表征能够确定执行所述定时任务的任务执行时间的参数;

添加单元203,用于将所述目标信息封装至所述定时任务,并将所述定时任务添加至任务队列;

执行单元204,用于响应于执行完成所述目标任务后监听所述任务队列,在所述定时任务的任务执行时间到达时,执行所述定时任务。所述装置还包括:

可选地,所述装置还包括:

解析单元,用于对所述定时参数进行解析,若所述定时参数为所述定时任务对应的待执行的时间点,将所述待执行的时间点确定为所述定时任务的任务执行时间;

执行时间确定单元,用于若所述定时参数为所述定时任务的延迟执行时间段,基于接收到所述定时任务调用请求的当前时间与所述延迟执行时间段,确定所述定时任务的任务执行时间。

可选地,所述执行单元包括:

第一获取子单元,用于周期性地获取所述任务队列中存储的各个定时任务的任务信息;

执行子单元,用于若所述任务信息对应的任务执行时间与当前系统时间一致,执行所述定时任务。

可选地,所述执行单元还包括:

第一处理子单元,用于对所述定时任务的目标信息进行反序列化处理,得到与所述定时任务对应的资源信息,所述资源信息至少包括所述定时任务的任务内容信息,以及执行所述定时任务的线程信息;

调用子单元,用于调用所述资源信息,执行所述定时任务。

可选地,所述确定单元包括:

接收子单元,用于响应于在执行目标任务时,接收到定时任务调用请求;

第二获取子单元,用于对所述目标任务的任务内容进行解析,获得所述目标任务的任务特征,所述任务特征至少包括所述目标任务的任务对象以及任务类型;

第一确定子单元,用于基于所述目标任务的任务特征,确定与所述调用请求对应的定时任务;

第二确定子单元,用于确定与所述定时任务对应的任务标识信息。

可选地,所述添加单元具体用于:

获得生成各个定时任务时触发的任务消息,所述任务消息表征发送给RocketMQ服务器的消息,所述任务消息至少由方法帧、内容头帧和消息体帧组成;

基于所述任务消息在数据中间件中创建任务队列,其中,所述数据中间件为基于RocketMQ创建;

将所述定时任务添加至所述任务队列。

需要说明的是,本实施例中处理器的具体实现可以参考前文中的相应内容,此处不再详述。

在本申请的另一实施例中还提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述中任一项所述的定时任务的处理方法。

对应的,在本申请实施例中还提供了一种电子设备,该电子设备包括:

存储器,用于存储应用程序和所述应用程序运行所产生的数据;

处理器,用于执行所述应用程序,以实现如上述中任一项所述的定时任务的处理方法。

本申请实施例公开了一种定时任务的处理方法、装置、存储介质及电子设备,该方法包括:响应于在执行目标任务时获得定时任务调用请求,确定与定时任务对应的任务标识信息,目标任务和定时任务的任务内容不同;获得与定时任务对应的定时参数,并将定时参数与任务标识信息进行序列化处理,得到目标信息,其中,定时参数表征能够确定执行定时任务的执行时间的参数;将目标信息封装至定时任务,并将定时任务添加至任务队列;响应于执行完成目标任务后监听任务队列,在定时任务的任务执行时间到达时,执行定时任务。在本申请中可以在执行目标任务时设置定时任务的定时参数,基于该定时参数执行定时任务,无需在目标任务执行后重新分析目标任务的特征再确定定时任务,节约了定时任务的开发成本,提升了开发效率。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 防抖结构、防抖系统及具有其的摄像装置
  • 导风板防抖结构及具有其的空调器
  • 导风板防抖结构及具有其的空调器
技术分类

06120116545532