利索能及
我要发布
收藏
专利号: 2020106152338
申请人: 北京百度网讯科技有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2025-12-08
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种定时任务处理方法,包括:获取第一定时任务的第一执行参数和用于标识所述第一定时任务的第一任务标识ID,并根据所述第一执行参数对数据库进行写入或者对所述数据库中的信息进行修改或删除;

将用于触发所述第一定时任务的第一延迟时间段和所述第一任务ID发送给分布式高速缓存集群;

从所述分布式高速缓存集群中获取用于标识待触发的第二定时任务的第二任务ID,并从所述数据库获取所述第二定时任务的第二执行参数;以及根据所述第二任务ID和所述第二执行参数触发所述第二定时任务的执行;

所述获取第一定时任务的第一执行参数和用于标识所述第一定时任务的第一任务标识ID,包括:通过第二请求接收实例将所述第一执行参数和所述第一任务ID写入分布式消息中间件集群;以及从所述分布式消息中间件集群中读取所述第一执行参数和所述第一任务ID;

所述根据所述第二任务ID和所述第二执行参数触发所述第二定时任务的执行,包括:将所述第二任务ID对应的即时任务信息和所述第二执行参数写入所述分布式消息中间件集群;以及通过第二任务执行实例从所述分布式消息中间件集群读取所述即时任务信息,并根据所述即时任务信息执行所述第二定时任务。

2.根据权利要求1所述的方法,其中,所述获取第一定时任务的第一执行参数和用于标识所述第一定时任务的第一任务标识ID,包括:接收第一请求接收实例发送的所述第一执行参数和所述第一任务ID。

3.根据权利要求2所述的方法,其中,所述根据所述第二任务ID和所述第二执行参数触发所述第二定时任务的执行,包括:将所述第二任务ID和所述第二执行参数发送给第一任务执行实例;以及通过所述第一任务执行实例根据所述第二任务ID和所述第二执行参数执行所述第二定时任务。

4.根据权利要求1所述的方法,其中,所述分布式消息中间件集群中包括定时队列和即时队列;

所述通过第二请求接收实例将所述第一执行参数和所述第一任务ID写入所述分布式消息中间件集群,包括:通过第二请求接收实例将所述第一执行参数和所述第一任务ID写入所述定时队列;

从分布式消息中间件集群中读取所述第一执行参数和所述第一任务ID,包括:从所述定时队列中读取所述第一执行参数和所述第一任务ID;

所述将所述第二任务ID对应的即时任务信息和所述第二执行参数写入所述分布式消息中间件集群,包括:将所述即时任务信息和所述第二执行参数写入所述即时队列;以及所述通过第二任务执行实例从所述分布式消息中间件集群读取所述即时任务信息,包括:通过所述第二任务执行实例从所述即时队列读取所述即时任务信息。

5.根据权利要求1-4中任一项所述的方法,其中,所述分布式高速缓存集群中包括第一队列、第二队列和第三队列,所述第一队列和所述第三队列为延迟队列,所述第二队列为非延时队列;

所述将用于触发所述第一定时任务的第一延迟时间段和所述第一任务ID发送给分布式高速缓存集群,包括:将所述第一延迟时间段发送给所述分布式高速缓存集群,并将所述第一任务ID存入所述第一队列中;

所述方法还包括:

在所述第一延迟时间段到期后,通过所述分布式高速缓存集群将所述第一任务ID从所述第一队列转移至所述第二队列,并将所述第一任务ID备份至所述第三队列,并设置第二延迟时间段;

从所述分布式高速缓存集群中获取用于标识待触发的第二定时任务的第二任务ID,并从所述数据库获取所述第二定时任务的第二执行参数,包括:从所述第二队列中获取所述第一任务ID,并从所述数据库获取所述第一执行参数;以及所述方法,还包括:

确定对所述第一任务ID和所述第一执行参数的打包发送成功,并向所述分布式高速缓存集群发送打包发送成功通知,使得所述分布式高速缓存集群删除所述第三队列中的第一任务ID;或者,在所述第二延迟时间段到期后,通过所述分布式高速缓存集群将所述第一任务ID从所述第三队列转移至所述第二队列中;

所述根据所述第二任务ID和所述第二执行参数触发所述第二定时任务的执行,包括:根据所述第一任务ID和所述第一执行参数触发所述第一定时任务的执行。

6.根据权利要求5所述的方法,其中,所述将用于触发所述第一定时任务的第一延迟时间段和所述第一任务ID发送给分布式高速缓存集群之前,还包括:根据所述第一执行参数确定所述第一延迟时间段。

7.根据权利要求1-4、6中任一项所述的方法,其中,所述分布式高速缓存集群包括redis或memcache。

8.根据权利要求1或4中任一项所述的方法,其中,所述分布式消息中间件集群包括kafka、activemq或rabbitmq。

9.一种定时任务处理装置,包括:获取模块,用于获取第一定时任务的第一执行参数和用于标识所述第一定时任务的第一任务标识ID,并根据所述第一执行参数对数据库进行写入或者对所述数据库中的信息进行修改或删除;

发送模块,用于将用于触发所述第一定时任务的第一延迟时间段和所述第一任务ID发送给分布式高速缓存集群;

所述获取模块,还用于从所述分布式高速缓存集群中获取用于标识待触发的第二定时任务的第二任务ID,并从所述数据库获取所述第二定时任务的第二执行参数;以及触发模块,用于根据所述第二任务ID和所述第二执行参数触发所述第二定时任务的执行;

所述获取模块,具体用于:通过第二请求接收实例将所述第一执行参数和所述第一任务ID写入分布式消息中间件集群;以及从所述分布式消息中间件集群中读取所述第一执行参数和所述第一任务ID;

所述触发模块,具体用于:将所述第二任务ID对应的即时任务信息和所述第二执行参数写入所述分布式消息中间件集群;以及通过第二任务执行实例从所述分布式消息中间件集群读取所述即时任务信息,并根据所述即时任务信息执行所述第二定时任务。

10.根据权利要求9所述的装置,其中,所述获取模块,具体用于接收第一请求接收实例发送的所述第一执行参数和所述第一任务ID。

11. 根据权利要求10所述的装置,其中:所述发送模块,还用于将所述第二任务ID和所述第二执行参数发送给第一任务执行实例;以及所述触发模块,还用于通过第一任务执行实例根据所述第二任务ID和所述第二执行参数执行所述第二定时任务。

12.根据权利要求9所述的装置,其中,所述分布式消息中间件集群中包括定时队列和即时队列;

所述获取模块,具体用于:通过所述第二请求接收实例将所述第一执行参数和所述第一任务ID写入所述定时队列;以及从所述定时队列中读取所述第一执行参数和所述第一任务ID;

所述触发模块,具体用于:将所述即时任务信息和所述第二执行参数写入所述即时队列;以及通过所述第二任务执行实例从所述即时队列读取所述即时任务信息。

13.根据权利要求9-12中任一项所述的装置,其中,所述分布式高速缓存集群中包括第一队列、第二队列和第三队列,所述第一队列和所述第三队列为延迟队列,所述第二队列为非延时队列;

所述发送模块,还用于:将所述第一延迟时间段发送给所述分布式高速缓存集群,并将所述第一任务ID存入所述第一队列中;以及在所述第一延迟时间段到期后,通过所述分布式高速缓存集群将所述第一任务ID从所述第一队列转移至所述第二队列,并将所述第一任务ID备份至所述第三队列,并设置第二延迟时间段;

所述获取模块,还用于从所述第二队列中获取所述第一任务ID,并从所述数据库获取所述第一执行参数;以及所述触发模块,还用于:确定对所述第一任务ID和所述第一执行参数的打包发送成功,并向所述分布式高速缓存集群发送打包发送成功通知,使得所述分布式高速缓存集群删除所述第三队列中的第一任务ID;或者,所述在所述第二延迟时间段到期后,通过所述分布式高速缓存集群将所述第一任务ID从所述第三队列转移至所述第二队列中;以及根据所述第一任务ID和所述第一执行参数触发所述第一定时任务的执行。

14.根据权利要求13所述的装置,其中,所述获取模块,还用于在将用于触发所述第一定时任务的第一延迟时间段和所述第一任务ID发送给分布式高速缓存集群之前,根据所述第一执行参数确定所述第一延迟时间段。

15.根据权利要求9-12、14中任一项所述的装置,其中,所述分布式高速缓存集群包括redis或memcache。

16.根据权利要求9或12中任一项所述的装置,其中,所述分布式消息中间件集群包括kafka、activemq或rabbitmq。

17. 一种电子设备,包括:至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的方法。

18.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-8中任一项所述的方法。