一种定时任务的处理方法及装置制造方法及图纸

技术编号:15541147 阅读:71 留言:0更新日期:2017-06-05 10:41
本发明专利技术公开了一种定时任务的处理方法及装置,该定时任务的处理方法包括:获取定时任务的任务信息和任务标识,所述任务信息包括线程标识、任务内容和时间策略;根据所述任务标识和任务信息在已存储的任务集合中创建所述定时任务,并开始计时;根据计时时长和所述时间策略调用所述线程标识对应的线程;利用所述线程执行所述任务内容。上述定时任务的处理方法无需定时器所在的线程的事件处理循环处于活跃状态即可触发定时任务,确保定时任务的准时触发,准确率高。

Method and device for processing timed task

The invention discloses a processing method and device for timed tasks, including the processing method of the timing task: acquisition timing task information and task identification, the task information including the thread ID, task and time strategy; the task identity and task information to create the timing task in the task set has been stored according to, and start time; according to the time duration and the time strategy calls the thread identifier corresponding to the thread; the thread executing the task. The processing method of the timing task does not need the event processing loop of the thread of the timer, and can activate the timed task in the active state to ensure that the timed task is triggered on time, and the accuracy is high.

【技术实现步骤摘要】
一种定时任务的处理方法及装置
本专利技术涉及计算机
,尤其涉及一种定时任务的处理方法及装置。
技术介绍
终端内的定时器是一个多任务定时提醒软件,主要用于在设定的时间到达后能够执行相应的任务,比如播放声音、关机、待机、拨号、断开连接、关闭显示器等操作,是终端中最常用的模块之一。目前,某些非开源操作系统常用的定时器是通过将创建的定时任务添加到当前线程的事件处理循环runloop中来实现的,也就是在当前线程的事件处理循环中加入一个时间源,每次该事件处理循环循环时会检查是否已到达指定时间,若到达,则执行相应的逻辑事件。通常,这些非开源操作系统下逻辑事件的准时触发必须保证:定时任务所在的事件处理循环当前处于活跃状态,且没有在执行连续任务。但是,由于子线程的事件处理循环是默认关闭的,并且难以避免会存在一些连续任务,比如连续运算的执行,从而导致该定时方案容易产生逻辑事件触发延迟或者不触发的情况,触发准确率低。
技术实现思路
本专利技术的目的在于提供一种定时任务的处理方法及装置,以解决现有技术中的定时器容易发生触发延迟或不触发,触发准确率低的技术问题。为解决上述技术问题,本专利技术实施例提供以下技术方案:一种定时任务的处理方法,其包括:获取定时任务的任务信息和任务标识,所述任务信息包括线程标识、任务内容和时间策略;根据所述任务标识和任务信息在已存储的任务集合中创建所述定时任务,并开始计时;根据计时时长和所述时间策略调用所述线程标识对应的线程;利用所述线程执行所述任务内容。为解决上述技术问题,本专利技术实施例还提供以下技术方案:一种定时任务的处理装置,其包括:获取模块,用于获取定时任务的任务信息和任务标识,所述任务信息包括线程标识、任务内容和时间策略;创建模块,用于根据所述任务标识和任务信息在已存储的任务集合中创建所述定时任务,并开始计时;调用模块,用于根据计时时长和所述时间策略调用所述线程标识对应的线程;第一执行模块,用于利用所述线程执行所述任务内容。本专利技术所述的定时任务的处理方法及装置,通过获取定时任务的任务信息和任务标识,该任务信息包括线程标识、任务内容和时间策略,接着,根据该任务标识和任务信息在已存储的任务集合中创建该定时任务,并开始计时,之后,根据计时时长和该时间策略调用该线程标识对应的线程,并利用该线程执行该任务内容,从而无需定时器所在的线程的事件处理循环处于活跃状态即可触发定时任务,确保定时任务的准时触发,准确率高。附图说明下面结合附图,通过对本专利技术的具体实施方式详细描述,将使本专利技术的技术方案及其它有益效果显而易见。图1a是本专利技术实施例提供的定时任务的处理系统的场景示意图;图1b为本专利技术实施例提供的定时任务的处理方法的流程示意图;图2为本专利技术实施例提供的定时任务的处理方法的流程示意图;图3a为本专利技术实施例提供的定时任务的处理装置的结构示意图;图3b为本专利技术实施例提供的定时任务的处理装置的另一结构示意图;图4为本专利技术实施例提供的网络设备的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例提供一种定时任务的处理方法、装置及系统。请参阅图1a,该定时任务的处理系统可以包括本专利技术实施例所提供的任一种定时任务的处理装置,该定时任务的处理装置具体可以集成在终端或服务器等网络设备中。其中,网络设备可以获取定时任务的任务信息和任务标识,该任务信息包括线程标识、任务内容和时间策略,接着,根据该任务标识和任务信息在已存储的任务集合中创建该定时任务,并开始计时,之后,根据计时时长和该时间策略调用该线程标识对应的线程,并利用该线程执行该任务内容。其中,该任务标识可以包括任务名称,其可以表现为字符串的形式,该任务标识可以根据任务内容而定,每一个任务有一个唯一的任务标识。该线程标识可以是线程的地址,该线程是程序执行流的最小单元。该时间策略可以根据实际需求而定,其可以包括是否循环、第一次触发时长、循环时间间隔、循环终止时间等信息。该任务集合主要用于存储网络设备中已创建的所有定时任务,其可以根据实际需求而定,比如可以是用户指定的文件夹,或者是网络设备出厂时厂家已经设置好的指定存储区(譬如任务分发库(GrandCentralDispatch,GCD))。当用户需要设定某个定时任务时,比如在终端上设定一个工作日早上八点的闹钟,此时,终端可以根据设定内容给该闹钟分配执行的线程和闹钟标识,并根据闹钟标识和闹钟信息在GCD中创建并启动该定时任务,这样,在每周一至周五早上八点的时候,分配的线程会自动执行铃声响起的操作。以下将分别进行详细说明。需说明的是,以下实施例的序号不作为实施例优先顺序的限定。第一实施例本实施例将从定时任务的处理装置的角度进行描述,该定时任务的处理装置可以集成在终端或服务器等网络设备中。请参阅图1b,图1b具体描述了本专利技术第一实施例提供的定时任务的处理方法,其可以包括:S101、获取定时任务的任务信息和任务标识,该任务信息包括线程标识、任务内容和时间策略。本实施例中,该任务信息和任务标识可以是客户端发送的,也可以是该网络设备根据用户的设定操作自行生成的,其中,该任务标识可以包括任务名称,其可以表现为字符串的形式,该任务标识可以根据任务内容而定,每一个任务有一个唯一的任务标识。该线程标识可以是线程的地址,该线程是程序执行流的最小单元。该时间策略可以根据实际需求而定,其可以是用户根据喜好自行设定的,也可以是系统默认设置的,该时间策略可以包括是否循环、第一次触发时长、循环时间间隔、循环终止时间等信息。S102、根据该任务标识和任务信息在已存储的任务集合中创建该定时任务,并开始计时。本实施例中,该任务集合主要用于存储网络设备中已创建的所有定时任务,其可以根据实际需求而定,比如可以是用户指定的文件夹,或者是网络设备出厂时厂家已经设置好的指定存储区(譬如任务分发库(GrandCentralDispatch,GCD))。需要说明的是,该任务集合是一个单例对象,在创建该定时任务的过程中,若任务集合中已存在具有同一任务标识的已创建任务,为避免重复创建占用内存,甚至导致后续调用混乱,只需将该已创建任务更新成定时任务即可完成创建操作,也即,上述步骤S102具体可以包括:1-1、判断已存储的任务集合中是否存在与该任务标识相同的已创建任务,若存在,则执行下述步骤1-2,若不存在,则执行下述步骤1-3。本实施例中,由于在任务集合中每个任务标识只能对应一个定时任务,所以可以通过任务标识来判断是要进行更新操作还是创建操作。1-2、根据该时间策略对该已创建任务进行更新。例如,上述步骤1-2具体可以包括:获取该已创建任务的已计时时长、当前剩余触发时长和循环规则;根据该时间策略对当前剩余触发时长和循环规则进行更新,并将该已计时时长归零。本实施例中,该循环规则可以包括是否循环、循环时间间隔以及循环终止时间等信息,当存在与该任务标识相同的已创建任务时,需要将该已创建任务的启动时间进行更新,以实现该定时任务的创建,也即可以将当前剩余触本文档来自技高网...
一种定时任务的处理方法及装置

【技术保护点】
一种定时任务的处理方法,其特征在于,包括:获取定时任务的任务信息和任务标识,所述任务信息包括线程标识、任务内容和时间策略;根据所述任务标识和任务信息在已存储的任务集合中创建所述定时任务,并开始计时;根据计时时长和所述时间策略调用所述线程标识对应的线程;利用所述线程执行所述任务内容。

【技术特征摘要】
1.一种定时任务的处理方法,其特征在于,包括:获取定时任务的任务信息和任务标识,所述任务信息包括线程标识、任务内容和时间策略;根据所述任务标识和任务信息在已存储的任务集合中创建所述定时任务,并开始计时;根据计时时长和所述时间策略调用所述线程标识对应的线程;利用所述线程执行所述任务内容。2.根据权利要求1所述的定时任务的处理方法,其特征在于,所述根据所述任务标识和任务信息在已存储的任务集合中创建所述定时任务,包括:判断已存储的任务集合中是否存在与所述任务标识相同的已创建任务;若存在,则根据所述时间策略对所述已创建任务进行更新;若不存在,则根据所述任务信息和任务标识在所述任务集合中创建所述定时任务。3.根据权利要求2所述的定时任务的处理方法,其特征在于,所述根据所述任务信息和任务标识在所述任务集合中创建所述定时任务,包括:建立所述任务标识、线程标识和任务内容的关联关系;根据所述时间策略获取第一次触发时长和循环规则;将所述关联关系、第一次触发时长和循环规则存储在任务集合中。4.根据权利要求2所述的定时任务的处理方法,其特征在于,所述根据所述时间策略对所述已创建任务进行更新,包括:获取所述已创建任务的已计时时长、当前剩余触发时长和循环规则;根据所述时间策略对当前剩余触发时长和循环规则进行更新,并将所述已计时时长归零。5.根据权利要求1所述的定时任务的处理方法,其特征在于,所述根据计时时长和所述时间策略调用所述线程标识对应的线程,包括:根据所述时间策略判断当前计时时长是否满足预设条件;若满足预设条件,则调用所述线程标识对应的线程;若不满足预设条件,则检测是否生成携带有所述任务标识的任务取消指令;若生成携带有所述任务标识的任务取消指令,则从所述任务集合中删除所述定时任务。6.根据权利要求1-5中任意一项所述的定时任务的处理方法,其特征在于,在利用所述线程执行所述任务内容之后,还包括:根据所述时间策略判断所述定时任务是否为循环任务;若所述定时任务是循环任务,则根据所述时间策略计算下一次触发时长,将所述计时时长归零,并返回执行所述开始计时的操作;若所述定时任务不是循环任务,则从所述任务集合中...

【专利技术属性】
技术研发人员:徐秋实
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1