一种定时任务执行方法和电子设备技术

技术编号:17247904 阅读:27 留言:0更新日期:2018-02-11 05:56
本发明专利技术实施例涉及程序控制装置领域,公开了一种定时任务执行方法和电子设备。本发明专利技术中的定时任务执行方法,包括:在添加定时任务时,为定时任务设置参数Tr,Tr的初始值为当前系统时间Tc;以预设时长△t作为间隔,利用Tc更新Tr;其中,在每次更新Tr之前,还包括:计算差值E,E=Tr‑Tc,若E和△t的差值超过预设范围,则利用E校正定时任务的到期时间Te;当达到Te时,执行定时任务。使得系统时间在发生跳变后,定时任务的执行时间跟随更新,保证定时任务被准确执行。

【技术实现步骤摘要】
一种定时任务执行方法和电子设备
本专利技术实施例涉及程序控制装置领域,特别涉及定时任务执行方法。
技术介绍
应用程序往往依赖于系统时间,在特定的时间点执行统计日志输出,网络探测以及其他关键任务。但系统时间并非恒久稳定,在时间服务器同步、人工干预修改时间等情况下,系统会出现时间跳变。专利技术人发现现有技术中至少存在如下问题:在系统时间跳变情况下,存在定时任务没能如期执行的问题。具体情形可能如下:当系统时间向后(未来方向)修改时,那些误认为过期的任务可能提前执行;当系统时间向前(过去方向)修改时,取决于时间调整的幅度,定时任务可能延迟很久才能回复正常。这将大大影响定时任务的执行准确性。
技术实现思路
本专利技术实施方式的目的在于提供一种定时任务执行方法和电子设备,使得系统时间在发生跳变后,定时任务的执行时间跟随更新,保证定时任务被准确执行。为解决上述技术问题,本专利技术的实施方式提供了一种定时任务执行方法,包括:在添加定时任务时,为所述定时任务设置参数Tr,所述Tr的初始值为当前系统时间Tc;以预设时长△t作为间隔,利用所述Tc更新所述Tr;其中,在每次更新所述Tr之前,还包括:计算差值E,所述E=Tr-Tc,若|E|和所述△t的差值超过预设范围,则利用所述E校正所述定时任务的到期时间Te;当达到所述Te时,执行所述定时任务。本专利技术的实施方式还提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述的定时任务执行方法。本专利技术的实施方式还提供了一种电子设备,计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的定时任务执行方法。本专利技术实施方式相对于现有技术而言,主要区别及其效果在于:新增参数Tr进行跳变检测,具体来说:每隔△t时长,对Tr和Tc的大小进行比较,如果两者的差值与△t的误差在可接受范围内,则认为没有时间跳变,在误差过大时,认为出现时间跳变。这样,即可在确定跳变时,对执行时间Te进行更新,具体来说,由于E和所跳变的时间相关,所以利用E对定时任务的执行时间进行校正,保证定时任务被正确执行。可见,本专利技术实施方式中的定时任务执行方法使得系统时间在发生跳变后,定时任务的执行时间跟随更新,保证定时任务被准确执行。作为进一步改进,所述利用E校正所述定时任务的到期时间Te,具体为:利用Te’=Te-E,校正所述Te;其中,所述Te’为校正后的到期时间。直接利用减去E的方式对Te进行校正,方法简便快速,算法简便。作为进一步改进,所述利用E校正所述定时任务的到期时间Te,具体为:当E>0,则利用Te’=Te-E-△t,校正所述Te;当E<0,则利用Te’=Te-E+△t,校正所述Te;其中,所述Te’为校正后的到期时间。根据E的正负值,确定时间跳变的方向,并结合△t对Te进行微调,使得校正后的Te更为精确。作为进一步改进,所述预设范围根据经验确定,或,所述预设范围为(-ε1,+ε2);其中,所述ε1和ε2的取值范围是大于或等于30,且小于或等于60。由于时间跳变有一定的可接受范围,过小的范围使得调整频率过高,不利于系统的正常运行,根据经验可以设定较为合适的范围,在保证定时任务正确执行的时候,尽量降低对系统的负荷。作为进一步改进,所述ε1等于所述ε2。将范围设定为相对于零点对称的范围,在计算及比较的过程中可以进一步简化算法流程。作为进一步改进,所述定时任务为:输出统计日志或网络探测。作为进一步改进,△t大于或等于3秒,且小于或等于10秒。附图说明一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。图1是根据本专利技术第一实施方式中的定时任务执行方法流程图;图2是根据本专利技术第二实施方式中的定时任务执行方法流程图;图3是根据本专利技术第三实施方式中的电子设备的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本专利技术各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。本专利技术的第一实施方式涉及一种定时任务执行方法。本申请专利技术人发现,在应用程序的主循环中,通过前后时间的差值,可以简单的判断是否发生了时间跳变,并对定时任务的执行时间进行校正。但在所有定时任务中,时间跳变后加入的任务其执行时间是准确的,并不需要修正;如何区分时间跳变前后的任务,并对跳变前的任务进行时间校正,才能使得所有定时任务都能按期执行。基于上述思想,本实施方式的流程如图1所示,具体如下:步骤101,添加定时任务,为定时任务设置参数(即:Tr)。具体的说,在添加定时任务的同时,需要为定时任务设置到期时间(即:Te),同时,新增设置一个参数Tr,Tr的初始值为当前系统时间(即:Tc)。本实施方式中的定时认为可以是输出统计日志或网络探测,还可以是其他定时任务,在此不做限定。步骤102,启动预设时长(即:△t)的倒计时。步骤103,判断倒计时是否完成;若是,则执行步骤104;若否,则返回执行步骤103。具体的说,步骤102和103是判断作为时间间隔的△t是否达到。步骤104,利用E=Tr-Tc,计算出E。步骤105,判断E和预设时长的差值是否超过预设范围;若是,则继续执行步骤106;若否,则执行步骤108。步骤106,利用Te-E的值校正Te。也就是说,当达到△t时,计算差值E,E=Tr-Tc,如果没有发生跳变,理想状况下E的值应该为-△t,所以E和△t的差值应为零,原则上说,只要E和△t的差值不为零,就是发生了跳变,但实际应用中,如果对微小跳变也进行校正,校正可能过于频繁,而且本专利技术人发现,微小的跳变基本不会影响任务的正常执行,所以本申请专利技术人提出了一个预设范围,在E和△t的差值超过预设范围时,才利用E校正定时任务的到期时间Te,在E和△t的差值不超过预设范围时,就不进行校正,这样就能降低算法的复杂度。具体的校正公式是,Te’=Te-E;其中,Te’为校正后的到期时间,Te为校正前的到期时间。需要说明的是,如果E>0,则Tr>Tc,说明时间向过去跳变;如果E<0,则Tr<Tc,说明时间向未来跳变。当时间向过去跳变时,Te’=Te-E<Te,Te向过去时间校正,当时间向未来跳变时,Te’=Te-E>Te,Te向未来时间校正。可见,虽然时间跳变时,既可能向未来时间跳变,也可以向过去时间跳变,根据这一个校正公式,就可以同时兼顾这两种跳变情形的校正,算法简便。步骤107,利用Tc更新Tr。具体的说,系统以△t作为间隔,利用Tc更新Tr;其中,在每次更新Tr之前,还包括步骤104至步骤106。实际应用中,步骤106和步骤107的先后顺序可以不限定,实际先本文档来自技高网...
一种定时任务执行方法和电子设备

【技术保护点】
一种定时任务执行方法,其特征在于,包括:在添加定时任务时,为所述定时任务设置参数Tr,所述Tr的初始值为当前系统时间Tc;以预设时长△t作为间隔,利用所述Tc更新所述Tr;其中,在每次更新所述Tr之前,还包括:计算差值E,所述E=Tr‑Tc,若E和所述△t的差值超过预设范围,则利用所述E校正所述定时任务的到期时间Te;当达到所述Te时,执行所述定时任务。

【技术特征摘要】
1.一种定时任务执行方法,其特征在于,包括:在添加定时任务时,为所述定时任务设置参数Tr,所述Tr的初始值为当前系统时间Tc;以预设时长△t作为间隔,利用所述Tc更新所述Tr;其中,在每次更新所述Tr之前,还包括:计算差值E,所述E=Tr-Tc,若E和所述△t的差值超过预设范围,则利用所述E校正所述定时任务的到期时间Te;当达到所述Te时,执行所述定时任务。2.根据权利要求1所述的定时任务执行方法,其特征在于,所述利用E校正所述定时任务的到期时间Te,具体为:利用Te’=Te-E,校正所述Te;其中,所述Te’为校正后的到期时间。3.根据权利要求1所述的定时任务执行方法,其特征在于,所述利用E校正所述定时任务的到期时间Te,具体为:当E>0,则利用Te’=Te-E-△t,校正所述Te;当E<0,则利用Te’=Te-E+△t,校正所述Te;其中,所述Te’为校正后的到期时间。4.根据权利要求1...

【专利技术属性】
技术研发人员:张伯雄
申请(专利权)人:网宿科技股份有限公司
类型:发明
国别省市:上海,31

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

1