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中来实现的,也就是在当前线程的事件处理循环中加入一个时间源,每次该事件处理循环循环时会检查是否已到达指定时间,若到达,则执行相应的逻辑事件。通常,这些非开源操作系统下逻辑事件的准时触发必须保证:定时任务所在的事件处理循环当前处于活跃状态,且没有在执行连续任务。但是,由于子线程的事件处理循环是默认关闭的,并且难以避免会存在一些连续任务,比如连续运算的执行,从而导致该定时方案容易产生逻辑事件触发延迟或者不触发的情况,触发准确率低。
技术实现思路
本专利技术的目的在于提供一种定时任务的处理方法及装置,以解决现有技术中的定时器容易发生触发延迟或不触发,触发准确率低的技术问题。为解决上述技术问题,本专利技术实施例提供以下技术方案:一种定时任务的处理方法,其包括:获取定时任务的任务信息和任务标识,所述任务信息包括线程标识、任务内容和时间策略;根据所述任务标识和任务信息在已存储的任务集合中创建所述定时任务,并开始计时;根据计时时长和所述时间策略调用所述线程标识对应的线程;利用所述线程执行所述任务内容。为解决上述技术问题,本专利技术实施例还提供以下技术方案:一种定时任务的处理装置,其包括:获取模块,用 ...
【技术保护点】
一种定时任务的处理方法,其特征在于,包括:获取定时任务的任务信息和任务标识,所述任务信息包括线程标识、任务内容和时间策略;根据所述任务标识和任务信息在已存储的任务集合中创建所述定时任务,并开始计时;根据计时时长和所述时间策略调用所述线程标识对应的线程;利用所述线程执行所述任务内容。
【技术特征摘要】
1.一种定时任务的处理方法,其特征在于,包括:获取定时任务的任务信息和任务标识,所述任务信息包括线程标识、任务内容和时间策略;根据所述任务标识和任务信息在已存储的任务集合中创建所述定时任务,并开始计时;根据计时时长和所述时间策略调用所述线程标识对应的线程;利用所述线程执行所述任务内容。2.根据权利要求1所述的定时任务的处理方法,其特征在于,所述根据所述任务标识和任务信息在已存储的任务集合中创建所述定时任务,包括:判断已存储的任务集合中是否存在与所述任务标识相同的已创建任务;若存在,则根据所述时间策略对所述已创建任务进行更新;若不存在,则根据所述任务信息和任务标识在所述任务集合中创建所述定时任务。3.根据权利要求2所述的定时任务的处理方法,其特征在于,所述根据所述任务信息和任务标识在所述任务集合中创建所述定时任务,包括:建立所述任务标识、线程标识和任务内容的关联关系;根据所述时间策略获取第一次触发时长和循环规则;将所述关联关系、第一次触发时长和循环规则存储在任务集合中。4.根据权利要求2所述的定时任务的处理方法,其特征在于,所述根据所述时间策略对所述已创建任务进行更新,包括:获取所述已创建任务的已计时时长、当前剩余触发时长和循环规则;根据所述时间策略对当前剩余触发时长和循环规则进行更新,并将所述已计时时长归零。5.根据权利要求1所述的定时任务的处理方法,其特征在于,所述根据计时时长和所述时间策略调用所述线程标识对应的线程,包括:根据所述时间策略判断当前计时时长是否满足预设条件;若满足预设条件,则调用所述线程标识对应的线程;若不满足预设条件,则检测是否生成携带有所述任务标识的任务取消指令;若生成携带有所述任务标识的任务取消指令,则从所述任务集合中删除所述定时任务。6.根据权利要求1-5中任意一项所述的定时任务的处理方法,其特征在于,在利用所述线程执行所述任务内容之后,还包括:根据所述时间策略判断所述定时任务是否为循环任务;若所述定时任务是循环任务,则根据所述时间策略计算下一次触发时长,将所述计时时长归零,并返回执行所述开始计时的操作;若所述定时任务不是循环任务,则从所述任务集合中...
【专利技术属性】
技术研发人员:徐秋实,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。