CN106775965A - 一种定时任务的处理方法及装置 - Google Patents
一种定时任务的处理方法及装置 Download PDFInfo
- Publication number
- CN106775965A CN106775965A CN201611014881.8A CN201611014881A CN106775965A CN 106775965 A CN106775965 A CN 106775965A CN 201611014881 A CN201611014881 A CN 201611014881A CN 106775965 A CN106775965 A CN 106775965A
- Authority
- CN
- China
- Prior art keywords
- task
- identification
- timed
- duration
- thread
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种定时任务的处理方法及装置,该定时任务的处理方法包括:获取定时任务的任务信息和任务标识,所述任务信息包括线程标识、任务内容和时间策略;根据所述任务标识和任务信息在已存储的任务集合中创建所述定时任务,并开始计时;根据计时时长和所述时间策略调用所述线程标识对应的线程;利用所述线程执行所述任务内容。上述定时任务的处理方法无需定时器所在的线程的事件处理循环处于活跃状态即可触发定时任务,确保定时任务的准时触发,准确率高。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种定时任务的处理方法及装置。
背景技术
终端内的定时器是一个多任务定时提醒软件,主要用于在设定的时间到达后能够执行相应的任务,比如播放声音、关机、待机、拨号、断开连接、关闭显示器等操作,是终端中最常用的模块之一。
目前,某些非开源操作系统常用的定时器是通过将创建的定时任务添加到当前线程的事件处理循环runloop中来实现的,也就是在当前线程的事件处理循环中加入一个时间源,每次该事件处理循环循环时会检查是否已到达指定时间,若到达,则执行相应的逻辑事件。通常,这些非开源操作系统下逻辑事件的准时触发必须保证:定时任务所在的事件处理循环当前处于活跃状态,且没有在执行连续任务。但是,由于子线程的事件处理循环是默认关闭的,并且难以避免会存在一些连续任务,比如连续运算的执行,从而导致该定时方案容易产生逻辑事件触发延迟或者不触发的情况,触发准确率低。
发明内容
本发明的目的在于提供一种定时任务的处理方法及装置,以解决现有技术中的定时器容易发生触发延迟或不触发,触发准确率低的技术问题。
为解决上述技术问题,本发明实施例提供以下技术方案:
一种定时任务的处理方法,其包括:
获取定时任务的任务信息和任务标识,所述任务信息包括线程标识、任务内容和时间策略;
根据所述任务标识和任务信息在已存储的任务集合中创建所述定时任务,并开始计时;
根据计时时长和所述时间策略调用所述线程标识对应的线程;
利用所述线程执行所述任务内容。
为解决上述技术问题,本发明实施例还提供以下技术方案:
一种定时任务的处理装置,其包括:
获取模块,用于获取定时任务的任务信息和任务标识,所述任务信息包括线程标识、任务内容和时间策略;
创建模块,用于根据所述任务标识和任务信息在已存储的任务集合中创建所述定时任务,并开始计时;
调用模块,用于根据计时时长和所述时间策略调用所述线程标识对应的线程;
第一执行模块,用于利用所述线程执行所述任务内容。
本发明所述的定时任务的处理方法及装置,通过获取定时任务的任务信息和任务标识,该任务信息包括线程标识、任务内容和时间策略,接着,根据该任务标识和任务信息在已存储的任务集合中创建该定时任务,并开始计时,之后,根据计时时长和该时间策略调用该线程标识对应的线程,并利用该线程执行该任务内容,从而无需定时器所在的线程的事件处理循环处于活跃状态即可触发定时任务,确保定时任务的准时触发,准确率高。
附图说明
下面结合附图,通过对本发明的具体实施方式详细描述,将使本发明的技术方案及其它有益效果显而易见。
图1a是本发明实施例提供的定时任务的处理系统的场景示意图;
图1b为本发明实施例提供的定时任务的处理方法的流程示意图;
图2为本发明实施例提供的定时任务的处理方法的流程示意图;
图3a为本发明实施例提供的定时任务的处理装置的结构示意图;
图3b为本发明实施例提供的定时任务的处理装置的另一结构示意图;
图4为本发明实施例提供的网络设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种定时任务的处理方法、装置及系统。
请参阅图1a,该定时任务的处理系统可以包括本发明实施例所提供的任一种定时任务的处理装置,该定时任务的处理装置具体可以集成在终端或服务器等网络设备中。
其中,网络设备可以获取定时任务的任务信息和任务标识,该任务信息包括线程标识、任务内容和时间策略,接着,根据该任务标识和任务信息在已存储的任务集合中创建该定时任务,并开始计时,之后,根据计时时长和该时间策略调用该线程标识对应的线程,并利用该线程执行该任务内容。
其中,该任务标识可以包括任务名称,其可以表现为字符串的形式,该任务标识可以根据任务内容而定,每一个任务有一个唯一的任务标识。该线程标识可以是线程的地址,该线程是程序执行流的最小单元。该时间策略可以根据实际需求而定,其可以包括是否循环、第一次触发时长、循环时间间隔、循环终止时间等信息。该任务集合主要用于存储网络设备中已创建的所有定时任务,其可以根据实际需求而定,比如可以是用户指定的文件夹,或者是网络设备出厂时厂家已经设置好的指定存储区(譬如任务分发库(Grand CentralDispatch,GCD))。当用户需要设定某个定时任务时,比如在终端上设定一个工作日早上八点的闹钟,此时,终端可以根据设定内容给该闹钟分配执行的线程和闹钟标识,并根据闹钟标识和闹钟信息在GCD中创建并启动该定时任务,这样,在每周一至周五早上八点的时候,分配的线程会自动执行铃声响起的操作。
以下将分别进行详细说明。需说明的是,以下实施例的序号不作为实施例优先顺序的限定。
第一实施例
本实施例将从定时任务的处理装置的角度进行描述,该定时任务的处理装置可以集成在终端或服务器等网络设备中。
请参阅图1b,图1b具体描述了本发明第一实施例提供的定时任务的处理方法,其可以包括:
S101、获取定时任务的任务信息和任务标识,该任务信息包括线程标识、任务内容和时间策略。
本实施例中,该任务信息和任务标识可以是客户端发送的,也可以是该网络设备根据用户的设定操作自行生成的,其中,该任务标识可以包括任务名称,其可以表现为字符串的形式,该任务标识可以根据任务内容而定,每一个任务有一个唯一的任务标识。该线程标识可以是线程的地址,该线程是程序执行流的最小单元。该时间策略可以根据实际需求而定,其可以是用户根据喜好自行设定的,也可以是系统默认设置的,该时间策略可以包括是否循环、第一次触发时长、循环时间间隔、循环终止时间等信息。
S102、根据该任务标识和任务信息在已存储的任务集合中创建该定时任务,并开始计时。
本实施例中,该任务集合主要用于存储网络设备中已创建的所有定时任务,其可以根据实际需求而定,比如可以是用户指定的文件夹,或者是网络设备出厂时厂家已经设置好的指定存储区(譬如任务分发库(Grand Central Dispatch,GCD))。
需要说明的是,该任务集合是一个单例对象,在创建该定时任务的过程中,若任务集合中已存在具有同一任务标识的已创建任务,为避免重复创建占用内存,甚至导致后续调用混乱,只需将该已创建任务更新成定时任务即可完成创建操作,也即,上述步骤S102具体可以包括:
1-1、判断已存储的任务集合中是否存在与该任务标识相同的已创建任务,若存在,则执行下述步骤1-2,若不存在,则执行下述步骤1-3。
本实施例中,由于在任务集合中每个任务标识只能对应一个定时任务,所以可以通过任务标识来判断是要进行更新操作还是创建操作。
1-2、根据该时间策略对该已创建任务进行更新。
例如,上述步骤1-2具体可以包括:
获取该已创建任务的已计时时长、当前剩余触发时长和循环规则;
根据该时间策略对当前剩余触发时长和循环规则进行更新,并将该已计时时长归零。
本实施例中,该循环规则可以包括是否循环、循环时间间隔以及循环终止时间等信息,当存在与该任务标识相同的已创建任务时,需要将该已创建任务的启动时间进行更新,以实现该定时任务的创建,也即可以将当前剩余触发时长和循环规则更新成与该定时任务的时间策略所包含的一致,并重新开始计时。
1-3、根据该任务信息和任务标识在该任务集合中创建该定时任务。
例如,上述步骤1-3具体可以包括:
建立该任务标识、线程标识和任务内容的关联关系;
根据该时间策略获取第一次触发时长和循环规则;
将该关联关系、第一次触发时长和循环规则存储在任务集合中。
本实施例中,当不存在与该定时任务的任务标识相同的已创建任务时,需要将任务信息和任务标识关联后存储在任务集合中,以创建该定时任务。
S103、根据计时时长和该时间策略调用该线程标识对应的线程。
例如,上述步骤S103具体可以包括:
根据该时间策略判断当前计时时长是否满足预设条件;
若满足预设条件,则调用该线程标识对应的线程;
若不满足预设条件,则检测是否生成携带有该任务标识的任务取消指令;若生成携带有该任务标识的任务取消指令,则从该任务集合中删除该定时任务。
本实施例中,该预设条件可以根据用户的实际需求而定,比如可以根据用户设定的触发时长而定。具体的,在开始计时之后,网络设备需要时刻检测当前计时时长是否满足预设条件,若满足,则可以执行指定的任务内容,若不满足,则可以继续计时,重新判断是否满足预设条件。
当然,在调用该线程标识对应的线程之前,也即判断出当前计时时长不满足预设条件时,若用户取消了该定时任务,或者该定时任务的执行对象(比如应用程序)被删除时,可以生成该任务取消指令,以进行相应的删除操作,从而避免任务集合中存在无效的定时任务。其中该删除操作可以包括删除与该定时任务相关的一切信息,比如已存储的关联关系、第一次触发时长、下一次触发时长以及循环规则等信息,或者删除与更新后的已创建任务相关的一切信息,等等。
例如,上述步骤“根据该时间策略判断当前计时时长是否满足预设条件”具体可以包括:
判断当前计时时长是否到达预设时长;
若满足,则判断当前计时时长满足预设条件;
若不满足,则判断当前计时时长不满足预设条件。
本实施例中,该预设时长可以是时间策略中的第一次触发时长,或者是根据循环规则计算的下一次触发时长(也即最近一次的触发时长),具体需要根据实际应用过程而定。
S104、利用该线程执行该任务内容。
本实施例中,若该线程正在执行其他操作,比如播放视频,网络设备会暂停该视频的播放,直到完成了该任务内容的执行操作才会继续播放该视频,并且,无论该线程所在的事件处理循环runloop当前是否处于活跃状态,都不影响该线程的执行操作,从而能最大程度的确保定时任务的准时触发,避免产生延时现象。
需要说明的是,对于非循环任务(也即一次性任务),在执行完该任务内容之后,为节省内存,可以删除该定时任务,但对于循环任务,在执行完该任务内容之后,还需要继续下一次循环操作,也即,在上述步骤S104之后,该定时任务的处理方法还可以包括:
根据该时间策略判断该定时任务是否为循环任务;
若该定时任务是循环任务,则根据该时间策略计算下一次触发时长,将该计时时长归零,并返回执行开始计时的操作;
若该定时任务不是循环任务,则删除该定时任务。
本实施例中,可以根据时间策略中的循环规则判断是否为循环任务,且若为循环任务,则可以计算下一次触发时长(比如可以为循环时间间隔),并重新开始计时,若为非循环任务,则可以删除任务集合中该定时任务的相关信息,比如任务标识和任务信息。
由上述可知,本实施例提供的定时任务的处理方法,通过获取定时任务的任务信息和任务标识,该任务信息包括线程标识、任务内容和时间策略,接着,根据该任务标识和任务信息在已存储的任务集合中创建该定时任务,并开始计时,之后,根据计时时长和该时间策略调用该线程标识对应的线程,并利用该线程执行该任务内容,从而无需定时器所在的线程的事件处理循环处于活跃状态即可触发定时任务,确保定时任务的准时触发,准确率高。
第二实施例
根据实施例一所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以该定时任务的处理装置集成在终端中为例进行详细说明。
如图2所示,一种定时任务的处理方法,具体流程可以如下:
S201、终端获取定时任务的任务信息和任务标识,该任务信息包括线程标识、任务内容和时间策略。
譬如,当用户设定了某个闹钟时,比如每天早上八点闹铃响起,终端可以根据该闹钟的内容生成任务标识,并给响铃操作分配执行的线程。
S202、终端判断已存储的任务集合中是否存在与该任务标识相同的已创建任务,若存在,则执行下述步骤S203,若不存在,则执行下述步骤S204-S205。
譬如,该任务集合可以存储终端中已设置好的所有定时任务,且每个定时任务都可以通过其唯一的任务标识查找得到,该任务集合可以是用户指定的文件夹,或者是终端出厂时厂家已经设置好的任务分发库GCD。
S203、终端获取该已创建任务的已计时时长、当前剩余触发时长和循环规则,并根据该时间策略对当前剩余触发时长和循环规则进行更新,同时将该已计时时长归零。
譬如,当任务集合中的某个已创建任务具有同样的任务标识时,说明该已创建任务和该定时任务的任务内容一样,此时,为避免重复创建而消耗内存,甚至导致后续调用混乱,终端只需将该已创建任务的启动时间进行更新即可。
S204、终端建立该任务标识、线程标识和任务内容的关联关系,并根据该时间策略获取第一次触发时长和循环规则。
譬如,当需要在任务集合中创建该定时任务时,终端可以从任务信息中获取该定时任务的第一次触发时长、是否循环、循环时间间隔和循环终止时间等信息,同时将任务标识和任务信息之间建立关联,以便后续的查找调用操作。
S205、终端将该关联关系、第一次触发时长和循环规则存储在任务集合中。
譬如,终端可以将该关联关系、第一次触发时长和循环规则存储在任务分发库GCD的某个区域。
S206、终端开始计时。
譬如,终端可以开启计时功能,该计时方式可以是从零开始的正常计时,也可以是从指定时长(比如第一次触发时长或者下一次触发时长)开始的倒计时。
S207、终端判断当前计时时长是否到达预设时长,若是,则可以执行下述步骤S208-S209,若否,则可以执行下述步骤S210。
譬如,若当前计时时长是第一次计时得到的时长时,该预设时长可以为第一次触发时长,若当前计时时长不是第一次计时得到的时长时,比如是第二次或者第N次计时得到的,则该预设时长可以为根据循环规则计算的下一次触发时长(也即最近一次的触发时长)。
S208、终端调用该线程标识对应的线程执行该任务内容。
譬如,若当前计时时长到达预设时长,说明满足定时任务的触发条件,此时,可以调用指定的线程来执行该定时任务设定的任务内容,比如闹钟的铃声响起。需要说明的是,若该线程正在执行其他操作,比如播放视频,终端会暂停该视频的播放,直到完成了该任务内容的执行操作才会继续播放该视频,并且,无论该线程所在的事件处理循环runloop当前是否处于活跃状态,都不影响该线程的调用,从而能最大程度的确保定时任务的准时触发,避免产生延时现象。
S209、终端根据该时间策略判断该定时任务是否为循环任务,若是,则可以执行下述步骤S211,若否,则可以执行下述步骤S212。
譬如,终端可以根据时间策略中的循环规则判断是否为循环任务。
S210、终端检测是否生成携带有该任务标识的任务取消指令,若是,则可以执行下述步骤S212,若否,则终端可以继续计时,并返回执行上述步骤S207。
譬如,若当前计时时长没有到达预设时长,说明不满足定时任务的触发条件,此时,若用户取消了该定时任务,或者该定时任务的执行对象(比如应用程序)被删除时,终端可以生成该任务取消指令。
S211、终端根据该时间策略计算下一次触发时长,将当前计时时长归零,并返回执行上述步骤S206。
譬如,终端可以将该定时任务循环规则中的循环时间间隔作为下一次触发时长,并将当前计时时长初始化。
S212、终端从该任务集合中删除该定时任务。
譬如,终端可以将任务集合中该定时任务的相关信息,比如任务标识和任务信息进行删除。
由上述可知,本实施例提供的定时任务的处理方法,其中终端可以获取定时任务的任务信息和任务标识,该任务信息包括线程标识、任务内容和时间策略,并判断已存储的任务集合中是否存在与该任务标识相同的已创建任务,若存在,则获取该已创建任务的已计时时长、当前剩余触发时长和循环规则,并根据该时间策略对当前剩余触发时长和循环规则进行更新,同时将该已计时时长归零,若不存在,则建立该任务标识、线程标识和任务内容的关联关系,并根据该时间策略获取第一次触发时长和循环规则,之后将该关联关系、第一次触发时长和循环规则存储在任务集合中,从而在创建该定时任务的过程中,能避免重复创建同一任务,节省内存资源。当创建完成时,终端可以开始计时,之后时刻判断当前计时时长是否到达预设时长,若满足,则调用该线程标识对应的线程执行该任务内容,并根据该时间策略判断该定时任务是否为循环任务,若是循环任务,则根据该时间策略计算下一次触发时长,将当前计时时长归零,并重新开始计时,若不是循环任务,则从该任务集合中删除该定时任务,若不满足,则检测是否生成携带有该任务标识的任务取消指令,若生成该任务取消指令,则该任务集合中删除该定时任务,若未生成该任务取消指令,则继续计时,并返回执行当前计时时长是否到达预设时长的操作,从而无需定时器所在的线程的事件处理循环处于活跃状态即可触发定时任务,确保定时任务的准时触发,准确率高。
第三实施例
在实施例一和实施例二所述方法的基础上,本实施例将从定时任务的处理装置的角度进一步进行描述,请参阅图3a,图3a具体描述了本发明第三实施例提供的定时任务的处理装置,其可以包括:获取模块10、创建模块20、调用模块30和第一执行模块40,其中:
(1)获取模块10
获取模块10,用于获取定时任务的任务信息和任务标识,该任务信息包括线程标识、任务内容和时间策略。
本实施例中,该任务信息和任务标识可以是客户端发送的,也可以是该网络设备根据用户的设定操作自行生成的,其中,该任务标识可以包括任务名称,其可以表现为字符串的形式,该任务标识可以根据任务内容而定,每一个任务有一个唯一的任务标识。该线程标识可以是线程的地址,该线程是程序执行流的最小单元。该时间策略可以根据实际需求而定,其可以是用户根据喜好自行设定的,也可以是系统默认设置的,该时间策略可以包括是否循环,第一次触发时长,循环时间间隔等信息。
(2)创建模块20
创建模块20,用于根据该任务标识和任务信息在已存储的任务集合中创建该定时任务,并开始计时。
本实施例中,该任务集合主要用于存储网络设备中已创建的所有定时任务,其可以根据实际需求而定,比如可以是用户指定的文件夹,或者是网络设备出厂时厂家已经设置好的指定存储区(譬如任务分发库(Grand Central Dispatch,GCD))。
需要说明的是,该任务集合是一个单例对象,在创建该定时任务的过程中,若任务集合中已存在具有同一任务标识的已创建任务,为避免重复创建占用内存,甚至导致后续调用混乱,只需将该已创建任务更新成定时任务即可完成创建操作,也即,请参阅图3b,该创建模块20具体可以包括判断子模块21、更新子模块22和创建子模块23,其中:
判断子模块21,用于判断已存储的任务集合中是否存在与该任务标识相同的已创建任务。
本实施例中,由于在任务集合中每个任务标识只能对应一个定时任务,所以判断子模块21可以通过任务标识来判断,从而决定要进行更新操作还是创建操作。
更新子模块22,用于若存在,则根据该时间策略对该已创建任务进行更新。
例如,该更新子模块22具体可以用于:
获取该已创建任务的已计时时长、当前剩余触发时长和循环规则;
根据该时间策略对当前剩余触发时长和循环规则进行更新,并将该已计时时长归零。
本实施例中,该循环规则可以包括是否循环、循环时间间隔以及循环终止时间等信息,当存在与该任务标识相同的已创建任务时,更新子模块22需要将该已创建任务的启动时间进行更新,以实现该定时任务的创建,也即可以将当前剩余触发时长和循环规则更新成与该定时任务的时间策略所包含的一致,并重新开始计时。
创建子模块23,用于若不存在,则根据该任务信息和任务标识在该任务集合中创建该定时任务。
例如,该创建子模块23具体可以用于:
建立该任务标识、线程标识和任务内容的关联关系;
根据该时间策略获取第一次触发时长和循环规则;
将该关联关系、第一次触发时长和循环规则存储在任务集合中。
本实施例中,当不存在与该定时任务的任务标识相同的已创建任务时,创建子模块23需要将任务信息和任务标识关联后存储在任务集合中,以创建该定时任务。
(3)调用模块30
调用模块30,用于根据计时时长和该时间策略调用该线程标识对应的线程。
例如,该调用模块30具体可以用于:
根据该时间策略判断当前计时时长是否满足预设条件;
若满足预设条件,则调用该线程标识对应的线程;
若不满足预设条件,则检测是否生成携带有该任务标识的任务取消指令;若生成携带有该任务标识的任务取消指令,则从该任务集合中删除该定时任务。
本实施例中,该预设条件可以根据用户的实际需求而定,比如可以根据用户设定的触发时长而定。具体的,在开始计时之后,网络设备需要时刻检测当前计时时长是否满足预设条件,若满足,则可以执行指定的任务内容,若不满足,则可以继续计时,重新判断是否满足预设条件。
当然,在调用该线程标识对应的线程之前,也即判断出当前计时时长不满足预设条件时,若用户取消了该定时任务,或者该定时任务的执行对象(比如应用程序)被删除时,可以生成该任务取消指令,以进行相应的删除操作,从而避免任务集合中存在无效的定时任务。其中该删除操作可以包括删除与该定时任务相关的一切信息,比如已存储的关联关系、第一次触发时长、下一次触发时长以及循环规则等信息,或者删除与更新后的已创建任务相关的一切信息,等等。
本实施例中,该调用模块30具体可以用于:
判断当前计时时长是否到达预设时长;
若满足,则判断当前计时时长满足预设条件;
若不满足,则判断当前计时时长不满足预设条件。
本实施例中,该预设时长可以是时间策略中的第一次触发时长,或者是根据循环规则计算的下一次触发时长(也即最近一次的触发时长),具体需要根据实际应用过程而定。
(4)第一执行模块40
第一执行模块40,用于利用该线程执行该任务内容。
本实施例中,若该线程正在执行其他操作,比如播放视频,网络设备会暂停该视频的播放,直到完成了该任务内容的执行操作才会继续播放该视频,并且,无论该线程所在的事件处理循环runloop当前是否处于活跃状态,都不影响该线程的执行操作,从而能最大程度的确保定时任务的准时触发,避免产生延时现象。
需要说明的是,对于非循环任务(也即一次性任务),在第一执行模块40执行完该任务内容之后,为节省内存,网络设备可以删除该定时任务,但对于循环任务,第一执行模块40在执行完该任务内容之后,还需要继续下一次循环操作,也即,该定时任务的处理装置还可以包括第二执行模块50,用于:
在该第一执行模块40利用该线程执行该任务内容之后,根据该时间策略判断该定时任务是否为循环任务;
若该定时任务是循环任务,则根据该时间策略计算下一次触发时长,将该计时时长归零,并返回执行该开始计时的操作;
若该定时任务不是循环任务,则从该任务集合中删除该定时任务。
本实施例中,第二执行模块50可以根据时间策略中的循环规则判断是否为循环任务,且若为循环任务,则可以计算下一次触发时长(比如可以为循环时间间隔),并重新开始计时,若为非循环任务,则可以删除任务集合中该定时任务的相关信息,比如任务标识和任务信息。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由上述可知,本实施例提供的定时任务的处理装置,通过获取模块10获取定时任务的任务信息和任务标识,该任务信息包括线程标识、任务内容和时间策略,接着,创建模块20根据该任务标识和任务信息在已存储的任务集合中创建该定时任务,并开始计时,调用模块30根据计时时长和该时间策略调用该线程标识对应的线程,第一执行模块40利用该线程执行该任务内容,从而无需定时器所在的线程的事件处理循环处于活跃状态即可触发定时任务,确保定时任务的准时触发,准确率高。
第四实施例
相应的,本发明实施例还提供一种定时任务的处理系统,包括本发明实施例所提供的任一种定时任务的处理装置,该定时任务的处理装置具体可参见实施例三。
其中,该定时任务的处理装置具体可以集成在终端或服务器等网络设备中,例如,可以如下:
网络设备,用于获取定时任务的任务信息和任务标识,该任务信息包括线程标识、任务内容和时间策略;根据该任务标识和任务信息在已存储的任务集合中创建该定时任务,并开始计时;根据计时时长和该时间策略调用该线程标识对应的线程;利用该线程执行该任务内容。
以上各个设备的具体实施可参见前面的实施例,在此不再赘述。
由于该定时任务的创建系统可以包括本发明实施例所提供的任一种定时任务的处理装置,因此,可以实现本发明实施例所提供的任一种定时任务的处理装置所能实现的有益效果,详见前面的实施例,在此不再赘述。
第五实施例
相应的,本发明实施例还提供一种网络设备,如图4所示,其示出了本发明实施例所涉及的网络设备的结构示意图,具体来讲:
该网络设备可以包括一个或者一个以上处理核心的处理器601、一个或一个以上计算机可读存储介质的存储器602、射频(Radio Frequency,RF)电路603、电源604、输入单元605、以及显示单元606等部件。本领域技术人员可以理解,图4中示出的网络设备结构并不构成对网络设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器601是该网络设备的控制中心,利用各种接口和线路连接整个网络设备的各个部分,通过运行或执行存储在存储器602内的软件程序和/或模块,以及调用存储在存储器602内的数据,执行网络设备的各种功能和处理数据,从而对网络设备进行整体监控。可选的,处理器601可包括一个或多个处理核心;优选的,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。
存储器602可用于存储软件程序以及模块,处理器601通过运行存储在存储器602的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据网络设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器602还可以包括存储器控制器,以提供处理器601对存储器602的访问。
RF电路603可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器601处理;另外,将涉及上行的数据发送给基站。通常,RF电路603包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路603还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobilecommunication)、通用分组无线服务(GPRS,General Packet Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband CodeDivision Multiple Access)、长期演进(LTE,Long Term Evolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
网络设备还包括给各个部件供电的电源604(比如电池),优选的,电源604可以通过电源管理系统与处理器601逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源604还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该网络设备还可包括输入单元605,该输入单元605可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元605可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器601,并能接收处理器601发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元605还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
该网络设备还可包括显示单元606,该显示单元606可用于显示由用户输入的信息或提供给用户的信息以及网络设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元606可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器601以确定触摸事件的类型,随后处理器601根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图4中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
尽管未示出,网络设备还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,网络设备中的处理器601会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器602中,并由处理器601来运行存储在存储器602中的应用程序,从而实现各种功能,如下:
获取定时任务的任务信息和任务标识,该任务信息包括线程标识、任务内容和时间策略;
根据该任务标识和任务信息在已存储的任务集合中创建该定时任务,并开始计时;
根据计时时长和该时间策略调用该线程标识对应的线程;
利用该线程执行该任务内容。
以上各操作的实现方法具体可参见上述实施例,此处不再赘述。
该终端可以实现本发明实施例所提供的任一种定时任务的处理装置所能实现的有效效果,详见前面的实施例,在此不再赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,RandomAccess Memory)、磁盘或光盘等。
以上对本发明实施例所提供的一种定时任务的处理方法、装置和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种定时任务的处理方法,其特征在于,包括:
获取定时任务的任务信息和任务标识,所述任务信息包括线程标识、任务内容和时间策略;
根据所述任务标识和任务信息在已存储的任务集合中创建所述定时任务,并开始计时;
根据计时时长和所述时间策略调用所述线程标识对应的线程;
利用所述线程执行所述任务内容。
2.根据权利要求1所述的定时任务的处理方法,其特征在于,所述根据所述任务标识和任务信息在已存储的任务集合中创建所述定时任务,包括:
判断已存储的任务集合中是否存在与所述任务标识相同的已创建任务;
若存在,则根据所述时间策略对所述已创建任务进行更新;
若不存在,则根据所述任务信息和任务标识在所述任务集合中创建所述定时任务。
3.根据权利要求2所述的定时任务的处理方法,其特征在于,所述根据所述任务信息和任务标识在所述任务集合中创建所述定时任务,包括:
建立所述任务标识、线程标识和任务内容的关联关系;
根据所述时间策略获取第一次触发时长和循环规则;
将所述关联关系、第一次触发时长和循环规则存储在任务集合中。
4.根据权利要求2所述的定时任务的处理方法,其特征在于,所述根据所述时间策略对所述已创建任务进行更新,包括:
获取所述已创建任务的已计时时长、当前剩余触发时长和循环规则;
根据所述时间策略对当前剩余触发时长和循环规则进行更新,并将所述已计时时长归零。
5.根据权利要求1所述的定时任务的处理方法,其特征在于,所述根据计时时长和所述时间策略调用所述线程标识对应的线程,包括:
根据所述时间策略判断当前计时时长是否满足预设条件;
若满足预设条件,则调用所述线程标识对应的线程;
若不满足预设条件,则检测是否生成携带有所述任务标识的任务取消指令;若生成携带有所述任务标识的任务取消指令,则从所述任务集合中删除所述定时任务。
6.根据权利要求1-5中任意一项所述的定时任务的处理方法,其特征在于,在利用所述线程执行所述任务内容之后,还包括:
根据所述时间策略判断所述定时任务是否为循环任务;
若所述定时任务是循环任务,则根据所述时间策略计算下一次触发时长,将所述计时时长归零,并返回执行所述开始计时的操作;
若所述定时任务不是循环任务,则从所述任务集合中删除所述定时任务。
7.一种定时任务的处理装置,其特征在于,包括:
获取模块,用于获取定时任务的任务信息和任务标识,所述任务信息包括线程标识、任务内容和时间策略;
创建模块,用于根据所述任务标识和任务信息在已存储的任务集合中创建所述定时任务,并开始计时;
调用模块,用于根据计时时长和所述时间策略调用所述线程标识对应的线程;
第一执行模块,用于利用所述线程执行所述任务内容。
8.根据权利要求7所述的定时任务的处理装置,其特征在于,所述创建模块包括:
判断子模块,用于判断已存储的任务集合中是否存在与所述任务标识相同的已创建任务;
更新子模块,用于若存在,则根据所述时间策略对所述已创建任务进行更新;
创建子模块,用于若不存在,则根据所述任务信息和任务标识在所述任务集合中创建所述定时任务。
9.根据权利要求8所述的定时任务的处理装置,其特征在于,所述创建子模块用于:
建立所述任务标识、线程标识和任务内容的关联关系;
根据所述时间策略获取第一次触发时长和循环规则;
将所述关联关系、第一次触发时长和循环规则存储在任务集合中。
10.根据权利要求8所述的定时任务的处理装置,其特征在于,所述更新子模块用于:
获取所述已创建任务的已计时时长、当前剩余触发时长和循环规则;
根据所述时间策略对当前剩余触发时长和循环规则进行更新,并将所述已计时时长归零。
11.根据权利要求7所述的定时任务的处理装置,其特征在于,所述调用模块用于:
根据所述时间策略判断当前计时时长是否满足预设条件;
若满足预设条件,则调用所述线程标识对应的线程;
若不满足预设条件,则检测是否生成携带有所述任务标识的任务取消指令;若生成携带有所述任务标识的任务取消指令,则从所述任务集合中删除所述定时任务。
12.根据权利要求7-11中任意一项所述的定时任务的处理装置,其特征在于,还包括第二执行模块,用于:
在所述第一执行模块利用所述线程执行所述任务内容之后,根据所述时间策略判断所述定时任务是否为循环任务;
若所述定时任务是循环任务,则根据所述时间策略计算下一次触发时长,将所述计时时长归零,并返回执行所述开始计时的操作;
若所述定时任务不是循环任务,则从所述任务集合中删除所述定时任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611014881.8A CN106775965B (zh) | 2016-11-17 | 2016-11-17 | 一种定时任务的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611014881.8A CN106775965B (zh) | 2016-11-17 | 2016-11-17 | 一种定时任务的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106775965A true CN106775965A (zh) | 2017-05-31 |
CN106775965B CN106775965B (zh) | 2021-03-23 |
Family
ID=58968838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611014881.8A Active CN106775965B (zh) | 2016-11-17 | 2016-11-17 | 一种定时任务的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106775965B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107748695A (zh) * | 2017-10-24 | 2018-03-02 | 平安科技(深圳)有限公司 | 定时任务处理方法、装置、存储介质和计算机设备 |
CN107832124A (zh) * | 2017-09-25 | 2018-03-23 | 阿里巴巴集团控股有限公司 | 一种在文件处理系统中处理任务的方法和装置 |
CN107910041A (zh) * | 2017-11-06 | 2018-04-13 | 上海林康医疗信息技术有限公司 | 一种用于精准提醒慢病患者按时服药的系统和方法 |
CN108900627A (zh) * | 2018-07-19 | 2018-11-27 | 武汉斗鱼网络科技有限公司 | 一种网络请求方法、终端装置及存储介质 |
CN109584060A (zh) * | 2018-10-15 | 2019-04-05 | 平安科技(深圳)有限公司 | 定时交易任务的处理方法、装置及计算机设备及存储介质 |
CN109634733A (zh) * | 2018-12-13 | 2019-04-16 | 成都四方伟业软件股份有限公司 | 任务调度管理方法、装置及运维管理服务器 |
CN110262878A (zh) * | 2019-05-06 | 2019-09-20 | 平安科技(深圳)有限公司 | 定时任务处理方法、装置、设备及计算机可读存储介质 |
CN110308979A (zh) * | 2019-06-27 | 2019-10-08 | 苏宁消费金融有限公司 | 基于任务调度的异步处理框架及其实现方法 |
CN110333915A (zh) * | 2019-05-31 | 2019-10-15 | 深圳壹账通智能科技有限公司 | 定时执行任务的方法、装置、计算机设备及存储介质 |
CN110908429A (zh) * | 2018-09-18 | 2020-03-24 | 阿里巴巴集团控股有限公司 | 一种定时器操作方法及装置 |
CN111625322A (zh) * | 2019-02-27 | 2020-09-04 | 阿里巴巴集团控股有限公司 | 数据处理方法、系统及设备 |
CN112306465A (zh) * | 2020-10-30 | 2021-02-02 | 北京字节跳动网络技术有限公司 | 一种计数方法及装置 |
CN112799796A (zh) * | 2019-11-14 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 一种定时任务管理方法、装置及存储介质 |
CN113176935A (zh) * | 2021-05-07 | 2021-07-27 | 深圳市欧瑞博科技股份有限公司 | 定时任务智能更新方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101887381A (zh) * | 2010-06-22 | 2010-11-17 | 北京伟库电子商务科技有限公司 | 基于Quartz框架的配置定时任务的方法和装置 |
CN102129393A (zh) * | 2011-03-09 | 2011-07-20 | 南京恩瑞特实业有限公司 | 通用定时任务管理的实现方法 |
CN104503761A (zh) * | 2014-12-30 | 2015-04-08 | 浪潮(北京)电子信息产业有限公司 | 一种利用时间转盘处理定时任务的方法和装置 |
US9135062B2 (en) * | 2013-04-09 | 2015-09-15 | National Instruments Corporation | Hardware assisted method and system for scheduling time critical tasks |
-
2016
- 2016-11-17 CN CN201611014881.8A patent/CN106775965B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101887381A (zh) * | 2010-06-22 | 2010-11-17 | 北京伟库电子商务科技有限公司 | 基于Quartz框架的配置定时任务的方法和装置 |
CN102129393A (zh) * | 2011-03-09 | 2011-07-20 | 南京恩瑞特实业有限公司 | 通用定时任务管理的实现方法 |
US9135062B2 (en) * | 2013-04-09 | 2015-09-15 | National Instruments Corporation | Hardware assisted method and system for scheduling time critical tasks |
US20160274939A1 (en) * | 2013-04-09 | 2016-09-22 | National Instruments Corporation | Time Critical Tasks Scheduling |
CN104503761A (zh) * | 2014-12-30 | 2015-04-08 | 浪潮(北京)电子信息产业有限公司 | 一种利用时间转盘处理定时任务的方法和装置 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107832124A (zh) * | 2017-09-25 | 2018-03-23 | 阿里巴巴集团控股有限公司 | 一种在文件处理系统中处理任务的方法和装置 |
CN107748695A (zh) * | 2017-10-24 | 2018-03-02 | 平安科技(深圳)有限公司 | 定时任务处理方法、装置、存储介质和计算机设备 |
CN107748695B (zh) * | 2017-10-24 | 2020-11-24 | 平安科技(深圳)有限公司 | 定时任务处理方法、装置、存储介质和计算机设备 |
CN107910041A (zh) * | 2017-11-06 | 2018-04-13 | 上海林康医疗信息技术有限公司 | 一种用于精准提醒慢病患者按时服药的系统和方法 |
CN108900627A (zh) * | 2018-07-19 | 2018-11-27 | 武汉斗鱼网络科技有限公司 | 一种网络请求方法、终端装置及存储介质 |
CN108900627B (zh) * | 2018-07-19 | 2021-11-26 | 武汉斗鱼网络科技有限公司 | 一种网络请求方法、终端装置及存储介质 |
CN110908429A (zh) * | 2018-09-18 | 2020-03-24 | 阿里巴巴集团控股有限公司 | 一种定时器操作方法及装置 |
CN110908429B (zh) * | 2018-09-18 | 2023-12-05 | 阿里巴巴集团控股有限公司 | 一种定时器操作方法及装置 |
CN109584060A (zh) * | 2018-10-15 | 2019-04-05 | 平安科技(深圳)有限公司 | 定时交易任务的处理方法、装置及计算机设备及存储介质 |
CN109634733A (zh) * | 2018-12-13 | 2019-04-16 | 成都四方伟业软件股份有限公司 | 任务调度管理方法、装置及运维管理服务器 |
CN111625322A (zh) * | 2019-02-27 | 2020-09-04 | 阿里巴巴集团控股有限公司 | 数据处理方法、系统及设备 |
CN111625322B (zh) * | 2019-02-27 | 2024-03-29 | 阿里巴巴集团控股有限公司 | 数据处理方法、系统及设备 |
CN110262878A (zh) * | 2019-05-06 | 2019-09-20 | 平安科技(深圳)有限公司 | 定时任务处理方法、装置、设备及计算机可读存储介质 |
CN110262878B (zh) * | 2019-05-06 | 2024-03-08 | 平安科技(深圳)有限公司 | 定时任务处理方法、装置、设备及计算机可读存储介质 |
CN110333915A (zh) * | 2019-05-31 | 2019-10-15 | 深圳壹账通智能科技有限公司 | 定时执行任务的方法、装置、计算机设备及存储介质 |
CN110308979A (zh) * | 2019-06-27 | 2019-10-08 | 苏宁消费金融有限公司 | 基于任务调度的异步处理框架及其实现方法 |
CN112799796A (zh) * | 2019-11-14 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 一种定时任务管理方法、装置及存储介质 |
CN112306465A (zh) * | 2020-10-30 | 2021-02-02 | 北京字节跳动网络技术有限公司 | 一种计数方法及装置 |
CN112306465B (zh) * | 2020-10-30 | 2024-05-24 | 抖音视界有限公司 | 一种计数方法及装置 |
CN113176935A (zh) * | 2021-05-07 | 2021-07-27 | 深圳市欧瑞博科技股份有限公司 | 定时任务智能更新方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106775965B (zh) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106775965A (zh) | 一种定时任务的处理方法及装置 | |
CN104243671B (zh) | 音量调节方法、装置及电子设备 | |
CN105763431B (zh) | 一种信息推送方法、装置及系统 | |
CN104571787B (zh) | 一种消息显示方法和通信终端 | |
CN108604265B (zh) | 离线管理应用程序使用时间的方法、及终端设备 | |
CN106411448B (zh) | 播放控制方法、装置及终端 | |
CN107272872A (zh) | 省电控制方法及相关产品 | |
CN104077184B (zh) | 一种应用程序的进程控制方法及计算机系统 | |
CN103473092A (zh) | 一种下载应用的处理方法、装置及终端设备 | |
CN105141458B (zh) | 剩余时长展示方法和装置 | |
CN106453597B (zh) | 数据同步周期的调整方法、装置及系统 | |
CN103294442B (zh) | 一种播放提示音的方法、装置及终端设备 | |
CN104519262A (zh) | 获取视频数据的方法、装置及终端 | |
CN108932093A (zh) | 分屏应用切换方法、装置、存储介质和电子设备 | |
CN109978482A (zh) | 工作流处理方法、装置、设备及存储介质 | |
CN106452644B (zh) | 播放控制方法、装置及终端 | |
CN106528156B (zh) | 一种页面数据处理方法和装置 | |
CN106713608A (zh) | 应用的功能状态修改方法、装置及终端 | |
CN103546632B (zh) | 一种用于移动终端的闹铃响铃方法、装置和移动终端 | |
CN104253870A (zh) | 控制数据访问周期的方法和装置 | |
CN107506251A (zh) | 对智能设备进行复位的方法及装置 | |
CN106055360A (zh) | 应用程序后台服务的启动方法及移动终端 | |
CN104780234B (zh) | Ip归属地查询方法、装置及系统 | |
CN106789307B (zh) | 配置数据处理方法、装置及系统 | |
CN106708501B (zh) | 活动监控方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |