CN1873615A - 一种定时器任务服务方法 - Google Patents

一种定时器任务服务方法 Download PDF

Info

Publication number
CN1873615A
CN1873615A CN 200610033285 CN200610033285A CN1873615A CN 1873615 A CN1873615 A CN 1873615A CN 200610033285 CN200610033285 CN 200610033285 CN 200610033285 A CN200610033285 A CN 200610033285A CN 1873615 A CN1873615 A CN 1873615A
Authority
CN
China
Prior art keywords
task
timer
thread
queue
timer task
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
Application number
CN 200610033285
Other languages
English (en)
Other versions
CN100585563C (zh
Inventor
加亚偌吉
张民卫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SnapTrack Inc
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN200610033285A priority Critical patent/CN100585563C/zh
Publication of CN1873615A publication Critical patent/CN1873615A/zh
Application granted granted Critical
Publication of CN100585563C publication Critical patent/CN100585563C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种Timer服务方法,其包括以下步骤:(1)建立定时器Timer任务队列,用于容纳Timer任务;(2)调用Timer线程,当所述Timer线程发现一个Timer任务到达触发时,从线程池中取出一个执行线程,并把所述Timer任务提交给所述执行线程;(3)在Timer任务完成后,所述执行线程返回线程池。应用本发明的系统可以支持大量的Timer任务,包括创建和取消Timer操作;同时避免了大量线程被创建,优化了相关资源,增强了系统的整体性能;使得整个系统的线程和其它资源都得到了有效应用。

Description

一种定时器任务服务方法
技术领域
本发明涉及一种通信系统的定时机制服务方法,尤其涉及的是,一种定时器任务服务方法。
背景技术
iSAP-S(集成服务应用平台-服务器端,Integrated ServiceApplication Platform-Server Side)中的Timer(定时器)的定时服务在资源的应用上是一个轻量级的实现,可以通过修改配置参数,将其应用在重量级的应用场合,例如需要创建大量Timer的电信应用中。它不同于JDK(java开发包,Java Development Kit)提供的Timer,对每一个任务需要独立的线程来执行。
JDK提供了java.util.Timer(java运用包中的定时类)支持Timer任务创建,JDK提供的Timer可以支持一次或多次触发的Timer任务。该Timer任务可以是指定的触发周期或者在指定的时间上触发。当Timer任务被执行的时候,该任务的回调方法在一个单独的线程内被调用。
Java也提供了javax.swing.Timer(java图形包中的定时器)的Timer实现。但这个Timer实现适合用在GUI(图形用户界面,Graphical UserInterface)中。这个Timer的事件分发机制更易于被GUI程序员理解,事件分发线程处理这种事件机制更为统一。另外所有的任务通过同一个线程进行执行,即一个线程被多个任务共享。
对于java.util.Timer,每一个Timer任务被执行的时候,就会伴随着一个线程被创建,直到这个任务被执行完毕,或者被取消。如果在一个系统中有大量的Timer任务同时被触发,会导致大量的线程被创建,Timer任务自身将占用大量的线程,然而在一个系统中,线程的数量是有限制的,从而导致正常的处理将由于线程的缺乏而得不到处理。
因此在硬件能力方面有限制以及需要大量线程的场合,这种方案是不能胜任的。此外,当在高压力环境下,系统过多线程在运行,线程调度器需要作很多的线程管理工作,这一定程度上也会影响线程调度的性能。
现有技术javax.swing.Timer解决方案倾向于用在GUI应用中。它不适合应用在Server端的程序。这个实现方案的一个缺点是所有的任务共享一个线程。这意味这任务的执行会被排序,如果一个任务执行需要很长时间,其它需要执行的任务只能等待前一个完成,这就导致了Timer任务有可能没有被按时触发,从而影响了精度和执行的效率。
因此,现有技术存在缺陷,需要改进。
发明内容
本发明的目的在于提供一种Timer服务方法,当Timer被创建的时候,不需要创建线程;通过重复使用线程池中的线程,以避免线程被频繁创建从而增强系统的性能。
本发明的技术方案如下:
一种定时器任务服务方法,其包括以下步骤:
(1)建立定时器Timer任务队列,用于容纳Timer任务;
(2)调用Timer线程,当所述Timer线程发现一个Timer任务到达触发时,从线程池中取出一个执行线程,并把所述Timer任务提交给所述执行线程;
(3)在Timer任务完成后,所述执行线程返回线程池。
所述的方法,其中,其步骤(3)还包括以下步骤:
(31)所述Timer线程检查所述Timer任务是否重复任务;
(32)如果所述Timer任务是重复任务,则重新计算其下一次的触发时间,并将其增加到任务队列中;
(33)如果所述Timer任务是一次性任务,则从任务队列删除该任务。
所述的方法,其中,所述Timer任务队列基于平衡树技术实现。
所述的方法,其中,所述Timer任务队列设置两个用户接口,包括增加任务和删除任务。
所述的方法,其中,所述Timer任务队列将任务发生变化的信息传输给Timer线程。
所述的方法,其中,所述Timer线程从Timer任务队列中获取具有最小触发时间的Timer任务。
所述的方法,其中,所述Timer线程给一个Timer任务分配了执行线程后,Timer线程自动处理队列中的其它Timer任务。
所述的方法,其中,所述Timer任务被线程池中获得的执行线程在后台执行。
所述的方法,其中,其重复调用所述线程池的执行线程,用于执行Timer任务。
所述的方法,其中,所述Timer任务被创建的时候,不为其创建特定执行线程。
采用上述方案,应用本发明的系统可以支持大量的Timer任务,包括创建和取消Timer操作;同时避免了大量线程被创建,优化了相关资源,增强了系统的整体性能;使得整个系统的线程和其它资源都得到了有效应用。
附图说明
图1为本发明的定时器任务服务流程图。
图2为本发明的具体实施例中定时器任务服务的流程图。
具体实施方式
本发明的核心思想是提供了一种定时器任务服务方法,排列成定时器任务队列,使用专用的线程实现任务的调度,使用线程池中的执行线程执行已经到触发时的任务队列中的任务,执行线程完成服务后被回送到线程池中,完成了定时器任务的服务。
本发明中的Timer服务是使用Timer线程实现对执行线程和对将来需要执行的任务进行调度的一种定时机制。
本发明中使用Timer任务队列排列需要执行的任务,使用优先队列作为核心数据结构,它在内存中表示为平衡二叉树。队列(queue[n])的左孩子(left son)和右孩子(right son)分别为偶数队列(queue[2*n])和奇数队列(queue[2*n+1])。优先队列基于任务的触发时间进行排序。最小的任务放在队头(queue[1]),对树中的任意一个结点n,假设它的后代为d,那么结点n的触发时间小于等于(<=)后代d的触发时间。
Timer线程是系统中使用的一个专用的线程,该线程负责调度Timer任务队列中的Timer任务,读取队列中的第一个任务的触发时间,并计算出相对于当前时间需要等待的时长,然后该线程就等待计算所得的时长,当等待时间到达时,处理Timer任务。然后继续同样的处理,读取下一个Timer任务。
下面结合附图1说明本发明的具体实施流程:
步骤101、建立Timer任务队列。
Timer任务队列基于平衡树技术实现,其用于容纳Timer任务。同时,Timer任务队列提供了对队列的基本操作,如删除一个任务、增加一个任务、对任务进行排序等;其功能是管理Timer任务。当一个新的任务被加到Timer任务队列中,队列自动重排平衡树(balanced tree)以确保这个任务被放到了正确的位置。同样地,当一个任务被删除时,平衡树自动重排剩下的任务。
因此,Timer任务队列,向用户提供了两个接口:一个为增加Timer任务,一个为删除Timer任务。当一个Timer任务被增加或者删除时,Timer任务队列会依据每个任务需要被触发的时间按照升序自动重排该队列。
用户可以在用户模块中设置或取消Timer服务;Timer服务模块将用户的操作转为向Timer任务队列增加或删除任务。
步骤102、当一个Timer任务到达触发时,从线程池中取一个执行线程,执行所述Timer任务。
Timer线程将监控Timer任务队列,使得Timer线程可以从队列中获取最近要触发的Timer任务。
当Timer任务队列通知Timer线程任务发生了变化,Timer线程从Timer任务队列中取下一个具有最小触发时间的任务。通过调用系统中专用的Timer线程,其读取队列中的第一个任务的触发时间,并计算出相对于当前时间需要等待的时长,然后该线程就等待计算所得的时长。
当等待时间到达时,该Timer任务的回调方法就会被从线程池中获得的后台执行线程调用。
Timer线程将进行下面的检查,以确定下一步需要进行的操作:
如果该任务的触发时间小于或等于当前时间,将立即从线程池中调用执行线程执行该任务;
如果该任务的触发时间大于当前的时间,Timer线程计算该任务等待时间,即触发时间减去当前时间的差值,然后Timer线程将等待该差值时间。
当Timer线程正在等待时,如果一个新的任务被增加,Timer线程将会得到通知,Timer线程将会被唤醒并重新从队列中取最小触发时间的Timer。当增加的timer任务具有最短的触发时间,从而需要重新取最小触发时间的Timer;如果没有新任务被增加,则Timer线程完成等待后被唤醒,通过把该任务扔给线程池触发该任务。
一旦Timer线程等待完成,Timer线程将从线程池中获取一个执行线程,并用该线程执行该Timer任务。
步骤103、执行线程返回线程池。
Timer线程给Timer任务分配了执行线程之后,Timer线程会自动处理队列中的其它任务;同时,执行线程自动返回线程池。
Timer线程将会检查该Timer任务是需要多次触发的重复任务还是一次性的任务。如果该任务是重复任务,该任务将会被重新计算下一次的触发时间,并被增加到Timer任务队列中。如果该任务是已经完成重复的重复任务或一次性任务,则该任务被删除。当任务被删除时,Timer队列将会自动排序Timer任务平衡树。
以下结合附图2说明本发明实现实施具体的步骤。
用户设置Timer(1);Timer把增加任务的信息通知Timer任务队列(2);Timer任务队列把任务队列发生变化的信息通知Timer线程(3),并且基于任务的触发时间将任务排序;Timer线程从Timer任务队列中获取下一个具有最小触发时间的Timer任务(4);判断是否立即执行该任务(5)。
如果该任务触发时间小于或等于当前时间(6),则通过把该任务扔给线程池触发该任务(7),并且判断是否属于重复任务(8)。若是一次性的任务或者重复任务已经完成重复(9),则扔掉该任务,处理下一个任务(10),转向获取下一个任务(4)。若是重复任务,则更新任务的下一次调度的时间,并重新放到Timer任务队列(11),转向把增加任务的信息通知Timer任务队列(2)。
如果该任务触发时间大于当前时间(12),则等待该任务的触发时间到达,完成等待后被Timer线程唤醒(13),从而转向该任务扔给线程池触发该任务(7),并且判断是否属于重复任务(8)。在等待完成前如果增加新任务被唤醒(14),则转向获取下一个任务(4)。
用户也可以取消Timer(1A),Timer把删除任务的信息通知Timer任务队列(2A),Timer任务队列将该任务从队列中删除。
以下是本发明的应用之一:在电信级的应用平台iSAP server,基于SIP的电信应用需要创建大量的Timer来处理业务超时,特别是在峰值应用时,系统中存在大量的Timer,使用JDK提供的Timer机制,无法适应这种峰值应用。而使用本发明的解决方案,系统很容易支持到超过20000个Timer任务;而且在支持大量Timer任务的同时,系统仍然有非常高的性能。这主要得益于线程池的使用以及其它相关资源的优化。由于Timer实现使用和重用了线程池中的线程,避免了大量线程被创建,因此整个系统的线程和其它资源都得到了有效应用。
在本发明中,Timer任务队列通过Timer任务队列和Timer线程的应用,提出不需要对每个Timer任务建立独立的执行线程,因此突破了系统允许的最大线程数量的限制;从而能够支持大量的Timer任务。
同时在本发明中,使用线程池,重复使用线程池中的执行线程完成Timer任务,不需要频繁地创建线程,从而为系统提供了更好的性能。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (10)

1、一种定时器任务服务方法,其特征在于,其包括以下步骤:
(1)建立定时器Timer任务队列,用于容纳Timer任务;
(2)调用Timer线程,当所述Timer线程发现一个Timer任务到达触发时,从线程池中取出一个执行线程,并把所述Timer任务提交给所述执行线程;
(3)在Timer任务完成后,所述执行线程返回线程池。
2、根据权利要求1所述的方法,其特征在于,其步骤(3)还包括以下步骤:
(31)所述Timer线程检查所述Timer任务是否重复任务;
(32)如果所述Timer任务是重复任务,则重新计算其下一次的触发时间,并将其增加到任务队列中;
(33)如果所述Timer任务是一次性任务,则从任务队列删除该任务。
3、根据权利要求1或2所述的方法,其特征在于,所述Timer任务队列基于平衡树技术实现。
4、根据权利要求1所述的方法,其特征在于,所述Timer任务队列设置两个用户接口,包括增加任务和删除任务。
5、根据权利要求1、2或4任意一项所述的方法,其特征在于,所述Timer任务队列将任务发生变化的信息传输给Timer线程。
6、根据权利要求1所述的方法,其特征在于,所述Timer线程从Timer任务队列中获取具有最小触发时间的Timer任务。
7、根据权利要求1所述的方法,其特征在于,所述Timer线程给一个Timer任务分配了执行线程后,Timer线程自动处理队列中的其它Timer任务。
8、根据权利要求1所述的方法,其特征在于,所述Timer任务被线程池中获得的执行线程在后台执行。
9、根据权利要求1所述的方法,其特征在于,其重复调用所述线程池的执行线程,用于执行Timer任务。
10、根据权利要求1所述的方法,其特征在于,所述Timer任务被创建的时候,不为其创建特定执行线程。
CN200610033285A 2006-01-20 2006-01-20 一种定时器任务服务方法 Expired - Fee Related CN100585563C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200610033285A CN100585563C (zh) 2006-01-20 2006-01-20 一种定时器任务服务方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200610033285A CN100585563C (zh) 2006-01-20 2006-01-20 一种定时器任务服务方法

Publications (2)

Publication Number Publication Date
CN1873615A true CN1873615A (zh) 2006-12-06
CN100585563C CN100585563C (zh) 2010-01-27

Family

ID=37484096

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200610033285A Expired - Fee Related CN100585563C (zh) 2006-01-20 2006-01-20 一种定时器任务服务方法

Country Status (1)

Country Link
CN (1) CN100585563C (zh)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101840353A (zh) * 2010-05-14 2010-09-22 陈冬岩 一种实时嵌入式操作系统的动态计时方法
CN102129393A (zh) * 2011-03-09 2011-07-20 南京恩瑞特实业有限公司 通用定时任务管理的实现方法
WO2011131010A1 (zh) * 2010-04-21 2011-10-27 中兴通讯股份有限公司 定时方法和装置
CN102426539A (zh) * 2011-11-01 2012-04-25 深圳市航天泰瑞捷电子有限公司 一种定时器任务自动处理方法及系统
CN103092682A (zh) * 2011-10-28 2013-05-08 浙江大华技术股份有限公司 异步网络应用程序处理方法
CN103164338A (zh) * 2013-03-25 2013-06-19 华为技术有限公司 并发处理系统的模拟方法及装置
CN103324469A (zh) * 2012-03-21 2013-09-25 腾讯科技(深圳)有限公司 定时器实现方法及装置
CN103345415A (zh) * 2013-07-30 2013-10-09 广东欧珀移动通信有限公司 管理定时器的终端节能方法和装置
CN103455310A (zh) * 2012-05-29 2013-12-18 中兴通讯股份有限公司 信号量等待接口定时方法及装置
CN103902586A (zh) * 2012-12-27 2014-07-02 腾讯科技(深圳)有限公司 网页多媒体信息任务的处理方法及装置
CN104199730A (zh) * 2014-08-29 2014-12-10 浪潮集团有限公司 一种基于同步i/o复用机制的单线程多任务处理方法
CN104268015A (zh) * 2014-09-05 2015-01-07 烽火通信科技股份有限公司 嵌入式设备高可用性定时器的实现方法及定时器
CN105068861A (zh) * 2015-07-09 2015-11-18 合肥君正科技有限公司 一种事务执行方法及装置
CN106020951A (zh) * 2016-05-12 2016-10-12 中国农业银行股份有限公司 一种任务调度方法及系统
CN106126332A (zh) * 2016-06-27 2016-11-16 北京京东尚科信息技术有限公司 分布式定时任务调度系统及方法
CN107678838A (zh) * 2017-10-19 2018-02-09 郑州云海信息技术有限公司 一种跟踪虚拟机操作的方法、装置及虚拟机管理平台
CN107704323A (zh) * 2017-11-07 2018-02-16 广州探迹科技有限公司 一种网络爬虫任务调度方法及装置
CN109445922A (zh) * 2018-10-31 2019-03-08 北京慧流科技有限公司 任务处理方法及装置、电子设备及存储介质
CN110018865A (zh) * 2018-01-10 2019-07-16 武汉斗鱼网络科技有限公司 定时器设置方法、存储介质、电子设备及系统
CN110119323A (zh) * 2019-05-13 2019-08-13 重庆八戒电子商务有限公司 一种基于时间轮执行延迟队列的方法及系统
CN110737526A (zh) * 2019-10-22 2020-01-31 上海思询信息科技有限公司 一种基于Redis的分布式集群下的定时任务管理方法及装置

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011131010A1 (zh) * 2010-04-21 2011-10-27 中兴通讯股份有限公司 定时方法和装置
CN101840353B (zh) * 2010-05-14 2012-10-24 陈冬岩 一种实时嵌入式操作系统的动态计时方法
CN101840353A (zh) * 2010-05-14 2010-09-22 陈冬岩 一种实时嵌入式操作系统的动态计时方法
CN102129393A (zh) * 2011-03-09 2011-07-20 南京恩瑞特实业有限公司 通用定时任务管理的实现方法
CN103092682A (zh) * 2011-10-28 2013-05-08 浙江大华技术股份有限公司 异步网络应用程序处理方法
CN103092682B (zh) * 2011-10-28 2016-09-28 浙江大华技术股份有限公司 异步网络应用程序处理方法
CN102426539B (zh) * 2011-11-01 2014-06-04 深圳市航天泰瑞捷电子有限公司 一种定时器任务自动处理方法及系统
CN102426539A (zh) * 2011-11-01 2012-04-25 深圳市航天泰瑞捷电子有限公司 一种定时器任务自动处理方法及系统
CN103324469A (zh) * 2012-03-21 2013-09-25 腾讯科技(深圳)有限公司 定时器实现方法及装置
CN103455310A (zh) * 2012-05-29 2013-12-18 中兴通讯股份有限公司 信号量等待接口定时方法及装置
CN103455310B (zh) * 2012-05-29 2017-02-08 中兴通讯股份有限公司 信号量等待接口定时方法及装置
CN103902586A (zh) * 2012-12-27 2014-07-02 腾讯科技(深圳)有限公司 网页多媒体信息任务的处理方法及装置
CN103902586B (zh) * 2012-12-27 2017-11-17 腾讯科技(深圳)有限公司 网页多媒体信息任务的处理方法及装置
CN103164338B (zh) * 2013-03-25 2016-03-30 华为技术有限公司 并发处理系统的模拟方法及装置
CN103164338A (zh) * 2013-03-25 2013-06-19 华为技术有限公司 并发处理系统的模拟方法及装置
CN103345415A (zh) * 2013-07-30 2013-10-09 广东欧珀移动通信有限公司 管理定时器的终端节能方法和装置
CN103345415B (zh) * 2013-07-30 2016-06-22 广东欧珀移动通信有限公司 管理定时器的终端节能方法和装置
CN104199730A (zh) * 2014-08-29 2014-12-10 浪潮集团有限公司 一种基于同步i/o复用机制的单线程多任务处理方法
CN104268015B (zh) * 2014-09-05 2017-08-01 烽火通信科技股份有限公司 嵌入式设备高可用性定时器的实现方法及定时器
CN104268015A (zh) * 2014-09-05 2015-01-07 烽火通信科技股份有限公司 嵌入式设备高可用性定时器的实现方法及定时器
CN105068861A (zh) * 2015-07-09 2015-11-18 合肥君正科技有限公司 一种事务执行方法及装置
CN106020951A (zh) * 2016-05-12 2016-10-12 中国农业银行股份有限公司 一种任务调度方法及系统
CN106126332A (zh) * 2016-06-27 2016-11-16 北京京东尚科信息技术有限公司 分布式定时任务调度系统及方法
CN107678838A (zh) * 2017-10-19 2018-02-09 郑州云海信息技术有限公司 一种跟踪虚拟机操作的方法、装置及虚拟机管理平台
CN107678838B (zh) * 2017-10-19 2021-07-02 郑州云海信息技术有限公司 一种跟踪虚拟机操作的方法、装置及虚拟机管理平台
CN107704323A (zh) * 2017-11-07 2018-02-16 广州探迹科技有限公司 一种网络爬虫任务调度方法及装置
CN110018865A (zh) * 2018-01-10 2019-07-16 武汉斗鱼网络科技有限公司 定时器设置方法、存储介质、电子设备及系统
CN109445922A (zh) * 2018-10-31 2019-03-08 北京慧流科技有限公司 任务处理方法及装置、电子设备及存储介质
CN110119323A (zh) * 2019-05-13 2019-08-13 重庆八戒电子商务有限公司 一种基于时间轮执行延迟队列的方法及系统
CN110737526A (zh) * 2019-10-22 2020-01-31 上海思询信息科技有限公司 一种基于Redis的分布式集群下的定时任务管理方法及装置

Also Published As

Publication number Publication date
CN100585563C (zh) 2010-01-27

Similar Documents

Publication Publication Date Title
CN1873615A (zh) 一种定时器任务服务方法
CN100342342C (zh) 支持多进程的Java虚拟机实现方法
CN100594498C (zh) 海量数据实时处理架构及用于该架构的实时随需处理平台
CN103092682B (zh) 异步网络应用程序处理方法
CN1870767A (zh) 对定时器任务进行管理的方法
CN1710535A (zh) 一种gis应用系统及其开发方法
CN109445944A (zh) 一种基于dpdk的网络数据采集处理系统及其方法
CN1752896A (zh) 操作系统协作下的嵌入式设备电源管理方法及系统
CN1517867A (zh) 进程调度装置、进程调度方法、程序以及记录媒体
CN1924911A (zh) 一种实现客户按时间段预约服务的方法
CN100341281C (zh) 一种在网络系统中实现任务管理的方法
CN1326567A (zh) 处理系统调度
CN1909705A (zh) 一种基于移动终端平台的通用开发平台
CN101102360A (zh) 一种自动回单方法
CN1270229C (zh) 基于动态内核实现跨地址空间创建构件对象的方法
CN1852131A (zh) 一种定时器调度方法
CN1328877C (zh) 共享线程实现和调度方法
CN1584828A (zh) 一种电信设备配置界面自动生成方法
CN1933454A (zh) 一种基于java消息服务的同步消息接口实现方法
CN1277196C (zh) 一种实现计算机系统应用服务器的方法
CN105468682A (zh) 一种事件调度系统
CN111240819A (zh) 一种调度任务的发布系统及方法
CN101060559A (zh) 一种人机命令队列管理系统和方法
CN113821322A (zh) 一种松耦合的分布式工作流协调系统和方法
CN1588411A (zh) 一种流程定制管理平台

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160418

Address after: American California

Patentee after: Snaptrack, Inc.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: Huawei Technologies Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100127

Termination date: 20190120