[发明专利]定时任务处理方法、系统和设备有效
申请号: | 201810195352.5 | 申请日: | 2018-03-09 |
公开(公告)号: | CN110245008B | 公开(公告)日: | 2023-02-03 |
发明(设计)人: | 薛亮 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/54 |
代理公司: | 北京太合九思知识产权代理有限公司 11610 | 代理人: | 刘戈 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 定时 任务 处理 方法 系统 设备 | ||
本发明实施例提供一种定时任务处理方法、系统和设备,该方法包括:从第一消息队列中拉取定时任务对应的消息,消息中包括定时任务的下一次执行时间和业务参数;若根据当前时间与下一次执行时间之间的第一时间差确定当前需要消费消息,则根据业务参数消费消息;将消费消息得到的定时任务处理结果发送至定时任务对应的终端设备。将对定时任务的处理转换为对消息的处理,相比于传统的基于数据库的定时任务处理模式,本方案采用消息系统代替了数据库,将定时任务转换为消息,对消息的处理无需进行加锁、解锁,在高并发的定时任务场景中,可以提高定时任务并发处理效率。
技术领域
本发明涉及互联网技术领域,尤其涉及一种定时任务处理方法、系统和设备。
背景技术
用户在很多实际应用场景中会有产生定时任务的需求,比如:每周一上午8点提醒起床;从当前时间起每隔15秒推送一条音频;10分钟后提醒我去抢购,等等。
这些定时任务背后的业务处理逻辑较为简单,核心的诉求是按照预期的时间执行任务。当这样的定时任务的数量较大的时候,那么传统的解决方案就回出现瓶颈,例如一个拥有100万用户的终端产品,假设这个产品有一个倒计时的功能,如果用户设定一个10分钟的倒计时,每隔15秒推送一段音频,假设全部用户都设定这一功能,那么理论上,这个产品单单这个功能就可能产生100万*40即4千万的定时任务。
目前,一种常用的调度定时任务的方式是采用Apache开源的定时调度框架Quartz,Quartz是一个开源的作业调度框架,能够很容易的解决任务定时调度问题,可以单机进行处理,也可以进行集群作业,以集群作业为例说明Quartz的解决方案。Quartz集群中包括多个Quartz服务器节点,多个Quartz服务器节点共用一个数据库,数据库中存储有任务(Job)相关信息。每个Quartz服务器节点都是一个独立的Quartz应用。
在介绍Quartz的原理之前,要介绍4个基本概念(接口):
Job:表示一个任务,要执行的具体内容,是一个接口,其运行时信息放在JobDataMap中。
JobDetail:JobDetail表示一个具体的可执行的调度程序,Job是这个可执行程调度程序所要执行的内容,即每次调度一个Job都会生成这个Job的JobDetail实例。另外JobDetail还包含了任务调度的方案和策略。
Trigger:代表一个调度参数的配置,主要是时间配置,用于告诉什么时候去调。
Scheduler:代表一个调度容器,一个调度容器中可以注册多个JobDetail和Trigger。当Trigger与JobDetail组合即形成了装配好的作业,就可以被Scheduler容器调度了。这里面包含一个线程池(ThreadPool)用来并行调度每个作业,以此提高效率。
上述结构用一个图来表示,如图1所示。
基于上述结构的介绍,当某个Quartz服务器节点的Scheduler被启动后,通过线程池中的线程拉取数据库中的任务,将任务实例化并运行,以获得任务处理结果。由于任务相关信息是存储在数据库中的,在进行任务获取时,需要使用加锁/解锁机制,简单来说就是,在获取任务时,需要判断相应行锁是否被其他线程占用,若被其他线程占用,则等待锁的释放;若没有被其他线程占用,则获取锁进行加锁处理,执行任务处理,处理完成后释放锁。
由此可见,Quartz架构下,采用数据库作为数据中心来存储定时任务,定时任务的处理过程中存在复杂的加锁、解锁过程。当面对重量级任务即定时任务数量极大的场景时,加锁、解锁的过程将会使得对这海量的定时任务的并发处理效率很低。
发明内容
有鉴于此,本发明实施例提供一种定时任务处理方法、系统和设备,用以提高海量定时任务的处理效率。
第一方面,本发明实施例提供一种定时任务处理方法,应用于服务端的处理系统侧,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810195352.5/2.html,转载请声明来源钻瓜专利网。