定时器运行方法、装置、设备、存储介质及程序产品与流程

文档序号:32785850发布日期:2023-01-03 18:47阅读:45来源:国知局
定时器运行方法、装置、设备、存储介质及程序产品与流程

1.本发明涉及通信技术领域,尤其涉及一种定时器运行方法、装置、设备、存储介质及程序产品。


背景技术:

2.随着软件功能越来复杂多样,需要的定时器也越来越多,每一个定时器处理流程需要底层建立定时器触发源、根据目的定时任务与当前任务之间的作用关系选择相应同步机制作为消息触发手段、定时器维护管理等多方面操作。涉及大量任务需要大量定时器的软件系统,没有简单通用的定时器操作操作接口,定时器管理起来会出现流程繁琐、消息机制混乱、难以维护等麻烦,且如果申请太多的硬件定时器,中断资源会影响系统的性能。
3.因此,如何更好的保证定时器运行,已经成为业界亟待解决的问题。


技术实现要素:

4.本发明提供一种定时器运行方法、装置、设备、存储介质及程序产品,用以解决现有技术中定时器管理复杂的缺陷。
5.本发明提供一种定时器运行方法,包括:
6.基于定时任务信息对应的定时器类型,从数组队列的n个定时器中确定目标定时器,其中,所述目标定时器为:当前线程类型定时器、跨线程类型定时器、跨进程类型定时器或跨ip地址域类型定时器,n为正整数;
7.在所述目标定时器的触发时间与当前中断源节拍计数一致的情况下,执行所述目标定时器对应的定时处理操作。
8.根据本发明提供的一种定时器运行方法,执行所述目标定时器对应的定时处理操作,包括:
9.在所述目标定时器为所述当前线程类型定时器的情况下,直接触发当前线程里的目的定时处理操作。
10.根据本发明提供的一种定时器运行方法,执行所述目标定时器对应的定时处理操作,包括:
11.在所述目标定时器为所述跨线程类型定时器的情况下,采用线程间消息机制发送消息触发目的线程里的定时处理操作;其中,所述目的线程与所述目标定时器关联。
12.根据本发明提供的一种定时器运行方法,执行所述目标定时器对应的定时处理操作,包括:
13.在所述目标定时器为所述跨进程类型定时器的情况下,采用进程间消息机制触发目的进程里的定时处理操作,其中,所述目的进程与所述目标定时器关联。
14.根据本发明提供的一种定时器运行方法,执行所述目标定时器对应的定时处理操作,包括:
15.在所述目标定时器为所述跨ip地址域类型定时器的情况下,采用发送socket消息
触发目的ip地址域软件环境中的目的定时处理操作,其中,所述目的ip地址域与所述目标定时器关联。
16.根据本发明提供的一种定时器运行方法,
17.在所述基于定时任务信息对应的定时器类型,从数组队列的n个定时器中确定目标定时器之前,还包括:
18.获取定时器的注册参数,其中,所述注册参数包括:定时任务所在的任务处理单元的任务id、定时器优先级、定时器的时间长度、定时器是否周期运行;
19.基于所述注册参数,完成对所述定时器的注册后,将所述定时器加入所述数组队列。
20.本发明还提供一种定时器运行装置,包括:
21.确定模块,用于基于定时任务信息对应的定时器类型,从数组队列的n个定时器中确定目标定时器,其中,所述目标定时器为:当前线程类型定时器、跨线程类型定时器、跨进程类型定时器或跨ip地址域类型定时器,n为正整数;
22.运行模块,用于在所述目标定时器的触发时间与当前中断源节拍计数一致的情况下,执行所述目标定时器对应的定时处理操作。
23.根据本发明提供的一种定时器运行装置,所述运行模块,具体用于:
24.在所述目标定时器为所述当前线程类型定时器的情况下,直接触发当前线程里的目的定时处理操作。
25.根据本发明提供的一种定时器运行装置,所述运行模块,具体用于:
26.在所述目标定时器为所述跨线程类型定时器的情况下,采用线程间消息机制发送消息触发目的线程里的定时处理操作;其中,所述目的线程与所述目标定时器关联。
27.根据本发明提供的一种定时器运行装置,所述运行模块,具体用于:
28.在所述目标定时器为所述跨进程类型定时器的情况下,采用进程间消息机制触发目的进程里的定时处理操作,其中,所述目的进程与所述目标定时器关联。
29.根据本发明提供的一种定时器运行装置,所述运行模块,具体用于:
30.在所述目标定时器为所述跨ip地址域类型定时器的情况下,采用发送socket消息触发目的ip地址域软件环境中的目的定时处理操作,其中,所述目的ip地址域与所述目标定时器关联。
31.根据本发明提供的一种定时器运行装置,所述装置还用于:
32.获取定时器的注册参数,其中,所述注册参数包括:定时任务所在的任务处理单元的任务id、定时器优先级、定时器的时间长度、定时器是否周期运行;
33.基于所述注册参数,完成对所述定时器的注册后,将所述定时器加入所述数组队列。
34.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述定时器运行方法。
35.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述定时器运行方法。
36.本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器
执行时实现如上述任一种所述定时器运行方法。
37.本发明提供的定时器运行方法、装置、设备、存储介质及程序产品,通过为每个定时任务分配唯一的任务id,而不同的任务id对应着定时器触发的不同作用范围,据此对应不同的定时器类型,能触发多种作用范围的定时处理操作,除了可以触发线程内的定时处理操作,还可以实现触发跨线程的定时处理操作、跨进程的定时处理操作、跨ip地址域的定时处理操作。且有统一的操作接口实现兼容,调用时无须知道底层的复杂实现过程,操作定时器非常便捷。
附图说明
38.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
39.图1为本技术实施例提供的定时器运行方法流程示意图;
40.图2为本技术实施例提供的定时器运行装置解构示意图;
41.图3是本发明提供的电子设备的结构示意图。
具体实施方式
42.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
43.图1为本技术实施例提供的定时器运行方法流程示意图,如图1所示,包括:
44.步骤110,基于定时任务信息对应的定时器类型,从数组队列的n个定时器中确定目标定时器,其中,所述目标定时器为:当前线程类型定时器、跨线程类型定时器、跨进程类型定时器或跨ip地址域类型定时器,n为正整数;
45.具体地,本技术实施例中所描述的定时任务信息具体可以是指多任务的软件系统中的定时任务,其具体可以是来自在底层驱动,基于一个固定周期硬件中断源建立中断处理,驱动层中断处理中向应用层触发调用的定时任务。
46.本技术实施例中所描述的定时处理操作所在的任务处理单元由软件系统统一分配唯一运行任务id标识,根据任务id识别触发定时处理操作选择需要哪一类型定时器。任务id统一规范管理,根据任务id识别选择不同类型定时器的过程是自动完成,进而从数组队列的n个定时器中确定目标定时器。
47.本技术实施例中数组队列,具体是由完成注册过程后的定时器所组成的队列。
48.本技术实施例中所描述的目标定时器可以为支持多种不功能的定时器,例如:当前线程类型定时器、跨线程类型定时器、跨进程类型定时器或跨ip地址域类型定时器,n为正整数。
49.步骤120,在所述目标定时器的触发时间与当前中断源节拍计数一致的情况下,执行所述目标定时器对应的定时处理操作。
50.具体地,在本技术实施例中,定时器的触发源统一采用同一个中断源,不同的定时器均采用当前终端源节拍技术来进行判断,保证了各定时器的同步,不会出现累计定时误差。如果中断源与标准时钟同步,比如gps,还能保证跨板定时器的同步。
51.基于硬件中断实现定时器的计数,保证实现的各定时器同源,不会由类似误差造成各定时器步调不一致。
52.在本技术实施例中,在目标定时器的触发时间与当前中断源节拍计数一致的情况下,则说明该目标定时器满足执行条件,需要执行该目标定时器对应的定时处理操作。
53.在一些可选地实施例中,若存在多个定时器同时与当前中断源节拍计数一致的情况下,则选择优先级高的定时器优先执行。
54.在本技术实施例中,通过为每个定时任务分配唯一的任务id,而不同的任务id对应着定时器触发的不同作用范围,据此对应不同的定时器类型,能触发多种作用范围的定时处理操作,除了可以触发线程内的定时处理操作,还可以实现触发跨线程的定时处理操作、跨进程的定时处理操作、跨ip地址域的定时处理操作。且有统一的操作接口实现兼容,调用时无须知道底层的复杂实现过程,操作定时器非常便捷。
55.可选地,执行所述目标定时器对应的定时处理操作,包括:
56.在所述目标定时器为所述当前线程类型定时器的情况下,直接触发当前线程里的目的定时处理操作。
57.具体地,本技术实施例中,目标定时器为所述当前线程类型定时器的情况下,则说明该定时任务不需要跨线程或者跨进程进行处理,直接触发当前线程里的目的定时处理操作。
58.在本技术实施例中,通过当前线程类型定时器能够有效触发线程内的定时操作处理,有效保证定时器运行。
59.可选地,执行所述目标定时器对应的定时处理操作,包括:
60.在所述目标定时器为所述跨线程类型定时器的情况下,采用线程间消息机制发送消息触发目的线程里的定时处理操作;其中,所述目的线程与所述目标定时器关联。
61.具体地,在本技术实施例中,在目标定时器为所述跨线程类型定时器的情况下,则说明该任务无法在本地线程进行处理,需要调用其它线程进行处理。
62.本技术实施例中所描述的目的线程是目标定时器在注册过程中,注册信息中所包括的目标定时器对应的目标线程,目的线程与所述目标定时器关联。
63.在目标定时器满足触发条件后,采用线程间消息机制发送消息触发目的线程里的定时处理操作。
64.在本技术实施例中,通过跨线程类型定时器,能够有效进行跨线程的定时操作处理,有效保证定时器运行。
65.可选地,执行所述目标定时器对应的定时处理操作,包括:
66.在所述目标定时器为所述跨进程类型定时器的情况下,采用进程间消息机制触发目的进程里的定时处理操作,其中,所述目的进程与所述目标定时器关联。
67.具体地,在本技术实施例中在所述目标定时器为所述跨进程类型定时器的情况下,则说明该任务无法在本地进程进行处理,需要调用其它进程进行处理。
68.本技术实施例中所描述的目的进程是目标定时器在注册过程中,注册信息中所包
括的目标定时器对应的目标进程,目的进程与所述目标定时器关联。
69.在目标定时器满足触发条件后,采用进程间消息机制发送消息触发目的进程里的定时处理操作。
70.在本技术实施例中,通过跨进程类型定时器,能够有效进行跨进程的定时操作处理,有效保证定时器运行。
71.可选地,执行所述目标定时器对应的定时处理操作,包括:
72.在所述目标定时器为所述跨ip地址域类型定时器的情况下,采用发送socket消息触发目的ip地址域软件环境中的目的定时处理操作,其中,所述目的ip地址域与所述目标定时器关联。
73.具体地,在所述目标定时器为所述跨ip地址域类型定时器的情况下,则说明该任务无法在本地ip地址域执行,需要跨ip地址域执行。
74.可以进一步发送socket消息,触发目的ip地址域软件环境中的目的定时处理操作。
75.在本技术实施例中,可以通过跨ip地址域类型定时器,有效实现对于跨ip地址域实现定时任务的支持,有效实现定时器的运行。
76.可选地,在所述基于定时任务信息对应的定时器类型,从数组队列的n个定时器中确定目标定时器之前,还包括:
77.获取定时器的注册参数,其中,所述注册参数包括:定时任务所在的任务处理单元的任务id、定时器优先级、定时器的时间长度、定时器是否周期运行;
78.基于所述注册参数,完成对所述定时器的注册后,将所述定时器加入所述数组队列。
79.具体地,在本技术实施例中,在数组队列被应用前,有一套定时器的注册过程,注册完成了后定时器才会出现在数组队列中。注册参数包含:目的定时处理操作所在的任务处理单元的任务id、优先级、定时器的时间长度、定时器是否周期运行。把注册参数写进数组队列元素中,数组元素中还包含定时器有效标识、定时计数。
80.定时器除了注册管理操作,还有一套运行维护操作,根据注册定时器时返回的定时器标识id识别对应的定时器,维护操作包含:定时器启用或暂停、定时器删除操作、修改定时器参数。
81.在本技术实施例中,每个定时任务都对应一套任务id,每个任务id唯一,定时器系统根据识别任务id自动选择对应定时器触发消息机制,定时器管理任务识别过程统一、规范、简洁。
82.可选地,本发明实现的定时器能由统一的循环周期中断源控制触发相应的定时处理操作,根据任务id间关系识别选择触发方式类型,根据触发方式类型可以把定时器分类为当前线程类型定时器、线程间类型定时器、进程间类型定时器、跨ip地址域类型定时器。定时器系统执行以下步骤:
83.步骤s1、在底层驱动,基于一个固定周期硬件中断源建立中断处理,驱动层中断处理中向应用层触发调用任务。本发明中所有涉及的定时器都使用此周期中断源。
84.步骤s2、在应用层,接受驱动中断触发的调用,在应用层维护一个数组队列,数组队列的每个元素对应一个定时器。定时器触发时间与当前中断源节拍计数一致时,选择优
先级高的定时器优先执行。
85.步骤s3、接着步骤s2,定时器根据四种定时器类型,选择相应的发送触发消息机制。定时器类型包含四种,分别是当前线程类型定时器、线程间类型定时器、进程间类型定时器、跨ip地址域类型定时器。这种四种类型定时器对应的发送触发消息机制分别是直接触发当前线程里的目的定时处理操作、采用线程间消息机制发送消息触发目的线程里的定时处理操作、采用进程间消息机制触发目的进程里的定时处理操作、采用发送socket消息触发目的ip地址域软件环境中的目的定时处理操作。
86.步骤s4、目的任务收到自己对应的定时器触发消息后,运行对应定时处理操作。
87.其中步骤s3中,定时处理操作所在的任务处理单元由软件系统统一分配唯一运行任务id标识,根据任务id识别触发定时处理操作选择需要哪一类型定时器。任务id统一规范管理,根据任务id识别选择不同类型定时器的过程是自动完成。
88.其中步骤s2中,在数组队列被应用前,有一套定时器的注册过程,注册完成了后定时器才会出现在数组队列中。注册参数包含:目的定时处理操作所在的任务处理单元的任务id、优先级、定时器的时间长度、定时器是否周期运行。把注册参数写进数组队列元素中,数组元素中还包含定时器有效标识、定时计数。
89.定时器除了注册管理操作,还有一套运行维护操作,根据注册定时器时返回的定时器标识id识别对应的定时器,维护操作包含:定时器启用或暂停、定时器删除操作、修改定时器参数。
90.下面对本发明提供的定时器运行装置进行描述,下文描述的定时器运行装置与上文描述的定时器运行方法可相互对应参照。
91.图2为本技术实施例提供的定时器运行装置解构示意图,如图2所示,包括:确定模块210和运行模块220;其中,确定模块210用于基于定时任务信息对应的定时器类型,从数组队列的n个定时器中确定目标定时器,其中,所述目标定时器为:当前线程类型定时器、跨线程类型定时器、跨进程类型定时器或跨ip地址域类型定时器,n为正整数;其中,运行模块220用于在所述目标定时器的触发时间与当前中断源节拍计数一致的情况下,执行所述目标定时器对应的定时处理操作。
92.可选地,根据本发明提供的一种定时器运行装置,所述运行模块,具体用于:
93.在所述目标定时器为所述当前线程类型定时器的情况下,直接触发当前线程里的目的定时处理操作。
94.根据本发明提供的一种定时器运行装置,所述运行模块,具体用于:
95.在所述目标定时器为所述跨线程类型定时器的情况下,采用线程间消息机制发送消息触发目的线程里的定时处理操作;其中,所述目的线程与所述目标定时器关联。
96.根据本发明提供的一种定时器运行装置,所述运行模块,具体用于:
97.在所述目标定时器为所述跨进程类型定时器的情况下,采用进程间消息机制触发目的进程里的定时处理操作,其中,所述目的进程与所述目标定时器关联。
98.根据本发明提供的一种定时器运行装置,所述运行模块,具体用于:
99.在所述目标定时器为所述跨ip地址域类型定时器的情况下,采用发送socket消息触发目的ip地址域软件环境中的目的定时处理操作,其中,所述目的ip地址域与所述目标定时器关联。
100.根据本发明提供的一种定时器运行装置,所述装置还用于:
101.获取定时器的注册参数,其中,所述注册参数包括:定时任务所在的任务处理单元的任务id、定时器优先级、定时器的时间长度、定时器是否周期运行;
102.基于所述注册参数,完成对所述定时器的注册后,将所述定时器加入所述数组队列。
103.在本技术实施例中,通过为每个定时任务分配唯一的任务id,而不同的任务id对应着定时器触发的不同作用范围,据此对应不同的定时器类型,能触发多种作用范围的定时处理操作,除了可以触发线程内的定时处理操作,还可以实现触发跨线程的定时处理操作、跨进程的定时处理操作、跨ip地址域的定时处理操作。且有统一的操作接口实现兼容,调用时无须知道底层的复杂实现过程,操作定时器非常便捷。
104.图3是本发明提供的电子设备的结构示意图,如图2所示,该电子设备可以包括:处理器(processor)310、通信接口(communications interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行定时器运行方法,该方法包括:基于定时任务信息对应的定时器类型,从数组队列的n个定时器中确定目标定时器,其中,所述目标定时器为:当前线程类型定时器、跨线程类型定时器、跨进程类型定时器或跨ip地址域类型定时器,n为正整数;在所述目标定时器的触发时间与当前中断源节拍计数一致的情况下,执行所述目标定时器对应的定时处理操作。
105.此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
106.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的定时器运行方法,该方法包括:基于定时任务信息对应的定时器类型,从数组队列的n个定时器中确定目标定时器,其中,所述目标定时器为:当前线程类型定时器、跨线程类型定时器、跨进程类型定时器或跨ip地址域类型定时器,n为正整数;在所述目标定时器的触发时间与当前中断源节拍计数一致的情况下,执行所述目标定时器对应的定时处理操作。
107.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的定时器运行方法,该方法包括:基于定时任务信息对应的定时器类型,从数组队列的n个定时器中确定目标定时器,其中,所述目标定时器为:当前线程类型定时器、跨线程类型定时器、跨进程类型定时器或跨ip地址域类型定时器,n为正整数;在所述目标定时器的触发时间与当前中断源节拍计数一致的情况下,执行所述目标定时器对应的定时处理操作。
108.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
109.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
110.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1