【技术实现步骤摘要】
定时任务处理方法及装置
本专利技术实施例涉及计算机
,尤其涉及一种定时任务处理方法及装置。
技术介绍
定时任务是在到达设定的时间后即被触发执行的任务,定时任务可以是周期性的任务,如每隔5分钟执行一次,也可以是一次性的任务,如在某年某月某日13:00:00执行,执行完任务即结束,不再重复执行。随着计算机和互联网技术的发展,定时任务被越来越多地应用到多种场景中,例如,每到达一定时间推送消息,每到达一定时间进行作业提醒,等等。目前,一种定时任务处理方案是将定时任务存储到数据库中,通过定时或者常态下执行检测脚本定期拉取数据库中的定时任务,来检测定时任务是否到达触发时间点。但是,这种定时任务处理方案中,因定时检测存在检测间隔,使得定时任务无法在精确的设定时间被执行,即使为常态下进行检测(如每隔100毫秒检测),这种被动检测的方案也无法精确匹配到定时任务的触发时间,存在定时任务执行延时的问题。
技术实现思路
有鉴于此,本专利技术实施例提供了一种定时任务处理方案,以解决现有技术中,无法实现定位任务在精确的触发时间被触发执行的问题。根据本专利技术实施例的第一方面,提供了一种定时 ...
【技术保护点】
1.一种定时任务处理方法,其特征在于,包括:通过定时任务的队列维护线程对应的I/O多路复用模型进行定时任务监听;在监听到新的定时任务后,通过所述I/O多路复用模型激活所述队列维护线程;读取所述定时任务的数据,并写入激活的所述队列维护线程,其中,所述定时任务的数据包括:所述定时任务的任务数据、所述定时任务的定时时间;根据所述定时任务的定时时间,将所述定时任务加入所述队列维护线程维护的定时任务队列,其中,所述定时任务队列中的定时任务按照定时时间从小到大排列;在所述定时任务队列中的每个定时任务的定时时间,触发任务分发线程分发对应的定时任务。
【技术特征摘要】
1.一种定时任务处理方法,其特征在于,包括:通过定时任务的队列维护线程对应的I/O多路复用模型进行定时任务监听;在监听到新的定时任务后,通过所述I/O多路复用模型激活所述队列维护线程;读取所述定时任务的数据,并写入激活的所述队列维护线程,其中,所述定时任务的数据包括:所述定时任务的任务数据、所述定时任务的定时时间;根据所述定时任务的定时时间,将所述定时任务加入所述队列维护线程维护的定时任务队列,其中,所述定时任务队列中的定时任务按照定时时间从小到大排列;在所述定时任务队列中的每个定时任务的定时时间,触发任务分发线程分发对应的定时任务。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:通过所述I/O多路复用模型监听所述队列维护线程的定时任务队列;根据监听结果,确定所述定时任务队列中的至少一个队列任务到达其定时时间时,激活所述队列维护线程将所述至少一个队列任务写入所述任务分发线程进行定时任务分发。3.根据权利要求1或2所述的方法,其特征在于,所述定时任务队列根据所述定时任务的定时时间,通过最小堆算法生成。4.根据权利要求1或2所述的方法,其特征在于,所述通过定时任务的队列维护线程对应的I/O多路复用模型进行定时任务监听,包括:通过定时任务的队列维护线程对应的I/O多路复用模型对请求分发线程进行定时任务监听;所述监听到新的定时任务,包括:监听到所述请求分发线程发出定时任务到达指令;所述读取所述定时任务的数据,包括:从所述请求分发线程读取所述定时任务的数据。5.根据权利要求4所述的方法,其特征在于,在所述通过定时任务的队列维护线程对应的I/O多路复用模型进行定时任务监听之前,所述方法还包括:通过主线程对所述请求分发线程、所述队列维护线程和所述任务分发线程进行初始化并分别建立对应的套接字对;其中,所述套按字对用于线程之间的I/O通信;所述请求分发线程、所述队列维护线程和所述任务分发线程由所述主线程创建。6.根据权利要求5所述的方法,其特征在于,在所述通过主线程对所述请求分发线程、所述队列维护线程和所述任务分发线程进行初始化并分别生成对应的套接字对之前,所述方法还包括:启动所述主线程并为所述主线程建立第一套接字和主线程套接字对,将所述主线程的第一套接字与设定的监听地址绑定;在所述通过主线程对所述请求分发线程、所述队列维护线程和所述任务分发线程进行初...
【专利技术属性】
技术研发人员:宋西军,
申请(专利权)人:北京世纪好未来教育科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。