首页> 中国专利> 一种基于时间轮定器的事件处理方法及装置

一种基于时间轮定器的事件处理方法及装置

摘要

本发明涉及通信领域,公开了一种基于时间轮定器的事件处理方法及装置,用于有效降低系统开销。该方法为:将每一个时间事件分别列入相应的时间阈值包含的当前精度最低的时间分量所对应的时间链表,再通过一个最高精度的定时器进行循环定时,该定时器每超时一次,便判断是否存在超时的时间链表,并将超时的时间链表中记录的超时的时间事件弹出进行处理,以及将未超时的时间链表继续列入其时间阈值包含的下一个精度级别的时间分量对应的时间链表,并继续采用上述定时器进行监控,这样,仅采用一个最高精度的定时器便可以推动整个时间轮的运转,并分别监控每一个时间事件的超时情况,从而有效降低了系统开销,提升了系统针对时间事件的容量。

著录项

  • 公开/公告号CN103677976A

    专利类型发明专利

  • 公开/公告日2014-03-26

    原文格式PDF

  • 申请/专利权人 大唐移动通信设备有限公司;

    申请/专利号CN201310664905.4

  • 发明设计人 张郑锟;张峰;

    申请日2013-12-09

  • 分类号G06F9/46(20060101);

  • 代理机构11291 北京同达信恒知识产权代理有限公司;

  • 代理人朱佳

  • 地址 100083 北京市海淀区学院路29号

  • 入库时间 2023-12-17 00:55:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-05

    授权

    授权

  • 2014-04-23

    实质审查的生效 IPC(主分类):G06F9/46 申请日:20131209

    实质审查的生效

  • 2014-03-26

    公开

    公开

说明书

技术领域

本发明涉及通信领域,特别涉及一种基于时间轮定器的事件处理方法及装 置。

背景技术

在目前的演进的分组核心网(Evolved Packet Core,EPC)计费场景下,以 每处理单元5万用户计算,每用户统计平均1.2承载,每承载一个费率组计算。 则时间阈值计费需要同时启动12万个计数器。按照时间阈值为5分钟计算, 则每秒平均有1000个定时器超时。这一量级的定时器开销对于系统将产生巨 大的影响。

当前计费触发功能(Charging Trigger Function,CTF)实现中,针对时间 阈值定时器的实现主要有两类,一类是通过纯硬件实现,另一类是通过软件设 计实现。

纯硬件实现方式通过是对每个需要启动的定时器使用相应的硬件定时时 钟,当定时器超时时,相应的硬件定时时钟中断;而在上述模型下同时存在的 硬件中断的量将达到12万。这一量级几乎将会耗尽所有的系统资源,而且目 前也没有如此强大的硬件条件能够支持这一量级要求。

而软件实现方式通常是选取一个能满足系统最高精度需求的硬件定时器 做为系统基准定时器,以提供系统所需的系统时钟和软件定时器的时钟源。通 过软件后续处理和换算实现大容量定时器需求。然而,选取一个能满足系统最 高精度需求的硬件定时器做为系统基准定时器,会令系统基准定时器的时钟源 将始终处于启动状态,即在每个最小的精度时间片都会产生中断,这样,在不 存在最高精度要求的定时需求时,将会产生大量的无效中断,耗费系统开销。

在实际使用中发现超过90%的硬件定时中断为无效中断,这些中断浪费了 大量的系统资源,降低了系统效率。针对这一弊端,很多定时器设置采用了多 级精度的方法,即启动一个较低精度的定时器T链表,将所有时间事件按超时 顺序插入该链表,当前较低精度级别定时器超时后,再根据剩余时刻启动较高 精度的定时器完成剩余时间的定时。

例如,参阅图1所示,当较低精度的定时器T’中断到达后,T1时间与实 际到时时刻T’之差已达不到一个低精度定时周期T,此时T1事件从时间链表 中弹出,并启动一个硬件剩余时刻精度定时器ΔT=T’-T1的高精度定时器, 当该高精度定时器中断到达时。触发T1事件到时处理。

而当T4事件到达时,以当前时间链表的精度T为单位,计算T4事件在 该精度级别的超时时间,遍历较低精度的时间链表将T4事件按超时顺序插入 该链表。

这一方案有两个主要弊端:一方面,新的事件到达时需要在较低精度定时 器链表上寻找自身的插入位置,在定时事件比较多的情况下,在链表上寻找插 入位置将消耗较大的软件开销;另一个方面,在较低精度定时周期T内的定时 事件比较多的场景下(例如在T’时刻,时间链表上的T1~Tn时间剩余超时时 间均达不到T时,T1~Tn都将启动硬件超时定时器),这仍旧会消耗较多的定 时中断,导致系统性能下降。

综上所述,在EPC计费系统中,由CTF完成对用户承载和费率组级别的 流量信息统计,CTF通过Rf接口将统计信息交付给计费数据功能(Charging  Data Function,CDF),由CDF生成相应的CDR发给计费网关功能(Charging  Gateway Function,CGF)。CGF对计费数据记录(Charging Data Record,CDR) 进行处理后发送给账单域(Billing Domain,BD)。在整个计费过程中多种计费 规则与方法都需要通过CTF进行数据采集。其中基于承载或费率组的时间阈 值计费,需要针对每条承载或费率组使用定时器控制时间阈值。CTF每秒需要 处理大量的定时器。那么针对实现而言,大量的定时器开销将严重影响系统容 量、增加系统负荷、降低处理性能。如何提供大容量,低开销,高精度的定时 器是CTF需要考虑和解决的问题。

发明内容

本发明实施例提供一种基于时间轮定器的事件方法及装置,用于有效降低 系统开销。

本发明实施例提供的具体技术方案如下:

第一方面,一种基于时间轮定器的事件处理方法,包括:

获取待处理的时间事件,并分别确定每一个时间事件的时间阈值;

分别将每一个时间事件列入相应的时间阈值所包含的当前精度最低的时 间分量所对应的时间链表;

采用一个基于当前最高精度的定时器进行循环定时,所述定时器每超时一 次,均判断当前是否存在超时的时间链表,在确定存在超时的时间链表时,开 始对所述超时的时间链表中记录的已超时的时间事件进行处理,以及将所述超 时的时间链表中记录的未超时的每一个时间事件列入相应的时间阈值包含的 下一个精度级别的时间分量所对应的时间链表,并继续采用所述定时器进行超 时监控。

结合第一方面,在第一种可能的实现方式中,获取待处理的时间事件,并 分别确定每一个时间事件的时间阈值,包括:

获取待处理的时间事件,分别确定每一个时间事件对应的用于表征等待处 理所需时间的绝对时长;

分别对每一个时间事件对应的绝对时长进行归一化处理;

将每一件时间事件对应的经归一化处理的绝对时长作为相应的时间事件 的时间阈值。

结合第一方面或第一方面的的第一种可能的实现方式,在第二种可能的实 现方式中,分别将每一个时间事件列入相应的时间阈值所包含的当前精度最低 的时间分量所对应的时间链表后,在采用一个基于当前最高精度的定时器进行 循环定时之前,进一步包括:

分别针对每一个时间事件对应的时间链表设置相应的计数器。

结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,采 用基于当前最高精度的定时器进行循环定时,所述定时器每超时一次,均判断 当前是否有超时的时间链表,包括:

启动所述定时器进行循环定时之后,所述定时器每超时一次,判断当前是 否存在对应的计数器已到达指定数值的时间链表,若是,则确定存在超时的时 间链表,否则,确定不存在超时的时间链表。

结合第一方面或第一方面的第一种可能的实现方式,在第四种可能的实现 方式中,将所述超时的时间链表中记录的未超时的一个时间事件列入相应的时 间阈值包含的下一个精度级别的时间分量所对应的时间链表,包括:

在所述一个时间事件对应的时间阈值所表征的时长中删除所述超时的时 间列表对应的精度级别的时长,并将所述一个时间事件列入相应的时间阈值的 剩余时长中当前精度最低的时间分量所对应的时间链表。

第二方面,一种CTF,包括:

处理单元,用于获取待处理的时间事件,并分别确定每一个时间事件的时 间阈值,并分别将每一个时间事件列入相应的时间阈值所包含的当前精度最低 的时间分量所对应的时间链表,以及采用一个基于当前最高精度的定时器进行 循环定时,所述定时器每超时一次,均判断当前是否存在超时的时间链表,在 确定存在超时的时间链表时,对所述超时的时间链表中记录的已超时的时间事 件进行处理,以及将所述超时的时间链表中记录的未超时的每一个时间事件列 入相应的时间阈值包含的下一个精度级别的时间分量所对应的时间链表,并继 续采用所述定时器进行超时监控;

结合第二方面,在第一种可能的实现方式中,所述处理单元具体用于:

获取待处理的时间事件,分别确定每一个时间事件对应的用于表征等待处 理所需时间的绝对时长;

分别对每一个时间事件对应的绝对时长进行归一化处理;

将每一件时间事件对应的经归一化处理的绝对时长作为相应的时间事件 的时间阈值。

结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种 可能的实现方式中,所述处理单元进一步用于:

在分别将每一个时间事件列入相应的时间阈值所包含的当前精度最低的 时间分量所对应的时间链表后,在采用一个基于当前最高精度的定时器进行循 环定时之前,分别针对每一个时间事件对应的时间链表设置相应的计数器。

结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所 述处理单元具体用于:

启动所述定时器进行循环定时之后,所述定时器每超时一次,判断当前是 否存在对应的计数器已到达指定数值的时间链表,若是,则确定存在超时的时 间链表,否则,确定不存在超时的时间链表。

结合第二方面或第二方面的第一种可能的实现方式,在第一方面的第四种 可能的实现方式中,所述处理单元具体用于:

在将所述超时的时间链表中记录的未超时的一个时间事件列入相应的时 间阈值包含的下一个精度级别的时间分量所对应的时间链表时,在所述一个时 间事件对应的时间阈值所表征的时长中删除所述超时的时间列表对应的精度 级别的时长,并将所述一个时间事件列入相应的时间阈值的剩余时长中当前精 度最低的时间分量所对应的时间链表。

第三方面,一种CTF,包括处理器,其中,

处理器,用于获取待处理的时间事件,并分别确定每一个时间事件的时间 阈值,并分别将每一个时间事件列入相应的时间阈值所包含的当前精度最低的 时间分量所对应的时间链表,以及采用一个基于当前最高精度的定时器进行循 环定时,所述定时器每超时一次,均判断当前是否存在超时的时间链表,在确 定存在超时的时间链表时,对所述超时的时间链表中记录的已超时的时间事件 进行处理,以及将所述超时的时间链表中记录的未超时的每一个时间事件列入 相应的时间阈值包含的下一个精度级别的时间分量所对应的时间链表,并继续 采用所述定时器进行超时监控。

结合第三方面,在第一种可能的实现方式中,所述处理器具体用于:

获取待处理的时间事件,分别确定每一个时间事件对应的用于表征等待处 理所需时间的绝对时长;

分别对每一个时间事件对应的绝对时长进行归一化处理;

将每一件时间事件对应的经归一化处理的绝对时长作为相应的时间事件 的时间阈值。

结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种 可能的实现方式中,所述处理器进一步用于:

在分别将每一个时间事件列入相应的时间阈值所包含的当前精度最低的 时间分量所对应的时间链表后,在采用一个基于当前最高精度的定时器进行循 环定时之前,分别针对每一个时间事件对应的时间链表设置相应的计数器。

结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所 述处理器具体用于:

启动所述定时器进行循环定时之后,所述定时器每超时一次,判断当前是 否存在对应的计数器已到达指定数值的时间链表,若是,则确定存在超时的时 间链表,否则,确定不存在超时的时间链表。

结合第三方面或第三方面的第一种可能的实现方式,在第一方面的第四种 可能的实现方式中,所述处理器具体用于:

在将所述超时的时间链表中记录的未超时的一个时间事件列入相应的时 间阈值包含的下一个精度级别的时间分量所对应的时间链表时,在所述一个时 间事件对应的时间阈值所表征的时长中删除所述超时的时间列表对应的精度 级别的时长,并将所述一个时间事件列入相应的时间阈值的剩余时长中当前精 度最低的时间分量所对应的时间链表。

本发明实施例中,将每一个时间事件分别列入相应的时间阈值包含的当前 精度最低的时间分量所对应的时间链表,再通过一个最高精度的定时器进行循 环定时,该定时器每超时一次,便判断是否存在超时的时间链表,并将超时的 时间链表中记录的超时的时间事件弹出进行处理,以及将未超时的时间链表继 续列入其时间阈值包含的下一个精度级别的时间分量对应的时间链表,并继续 采用上述定时器进行监控,这样,相较于现有技术下的实现方式,可以大大减 少定时器数目,不必针对每一个时间事件分别设置相应的定时器,令定时器数 目不再受时间事件的影响,仅采用一个最高精度的定时器便可以推动整个时间 轮的运转,并分别监控每一个时间事件的超时情况,从而有效降低了系统开销, 提升了系统针对时间事件的容量

附图说明

图1为现有技术下在时间链表中插入新事件示意图;

图2为本发明实施例中基于TWT进行事件处理流程图;

图3为本发明实施例中归一化处理示意图;

图4和图5为本发明实施例中CTF示意图。

具体实施方式

为了有效降低计费开销,本发明实施例中,CTF采用时间轮定时器 (TimeWheel Timers,TWT)设定多级精度的时间链表,通过将定时事件从低 精度的时间链表上逐步迁移到高精度的时间链表上,完成时间的递推,当时间 到达时,将定时事件从时间链表上弹出进行超时处理。

进一步地,由于每个时间链表对应的时间是相同的,因此时间事件在插入 时间链表时无需排序,插入链表尾即可。有效的降低了系统负荷与开销。提升 了定时容量。

下面结合附图对本发明优选的实施方式进行详细说明。

参阅图2所示,本发明实施例中,CTF采用TWT进行计费的详细流程如 下:

步骤200:CTF获取待处理的时间事件,并分别确定每一个时间事件的时 间阈值。

具体的,CTF获取待处理的时间事件,分别确定每一个时间事件对应的用 于表征等待处理所需时间的绝对时长,以及分别对每一个时间事件对应的绝对 时长进行归一化处理,再将每一件时间事件对应的经归一化处理的绝对时间作 为相应的时间事件的时间阈值。

从上述内容可以看出,一个时间事件的时间阈值即是该时间事件的等待处 理时长,也可称为超时时间,本发明实施例中,以绝对时间的形式来记录一个 时间事件的时间阈值,如,时间事件A的时间阈值为2分钟2秒150毫秒,则 其表示记录时间事件A的起始时刻为0秒,到2分钟2秒150毫秒的时刻,时 间事件A超时,可以进行处理。

另一方面,由于不同的时间事件的绝对时间不一致,则在确定每一个时间 事件的时间阈值后,在执行步骤210之前,可选的,可以对每一个时间事件的 时间阈值进行归一化处理。

本发明实施例中,在采用TWT的基础上,CTF会根据事件的需求确定最 小精度值,通过最小精度值将连续时间轴上的小于最小精度的时间事件进行归 一化处理。即CTF会确定每一个时间事件的最小精度,并对其最小精度进行 归一化处理,其中,在进行归一化处理时,可以向前取整,也可以向后取整。

以向后取整为例,参阅图3所示,本发明实施例中,假设在连续时间序列 上,在T0时刻和T1时刻之间存在时间事件t11、t12、…t1n,则CTF归一化 认为这些时间事件均在T1时刻发生;又假设在连续时间序列上,在T1时刻和 T2时刻之间存在时间事件t21、t22、…t2n,则CTF归一化认为这些时间事件 均在T2时刻发生。T0、T1、T2……这些时刻即为CTF根据计费需求设置的最 小精度,本实施例中,针对计费事件可以将最小精度设置为秒级的,也可以设 置为百毫秒级的,具体看计费需求而定。

具体的,在EPC系统中,时间事件通常配置为分钟级到十分钟级别,按 照这一阈值范围,100ms的精度足以满足时间阈值的定时需求。将连续的时间 轴划分为100ms间隔的离散时间序列。对于随机接入的用户,认为在每个100ms 时间间隔内的时间阈值到达(定时器超时)事件,可以统一在100ms到达时刻 的时间序列点上处理。

例如,假设时间事件A的时间阈值为2分钟2秒150毫秒,而T0表示0 毫秒,T1表示100毫秒,T2表示200毫秒……,显然,CTF采用的最小精度 为100毫秒,若按照向前取整的归一化处理方式,则CTF确定时间事件A的 时间阈值归一化为2分钟2秒100毫秒,而若按照向后取整的归一化处理方式, 则CTF确定时间事件A的时间阈值归一化为2分钟2秒200毫秒。

步骤210:CTF分别将每一个时间事件列入相应的时间阈值所包含的当前 精度最低的时间分量所对应的时间链表。

TWT采用绝对时间序列,通过设置多个时间量级的时间链表完成时间的 递推。为简单起见,采用类似于日历的模型进行阐述该原理(针对不同的应用 场景,该时间量级可以按照需求进行设置):即设置精度分别为年,月,日, 时,分,秒,百毫秒等七个时间量级,每个时间量级根据基础的日历换算关系 设置对应数目的时间链表。

例如,如果需要TWT支持长达30年的绝对时间序列,则年量级需要设定 30个时间链表,分别对应绝对时间的第0年到第29年,月量级设置12个时间 链表,对应每年的12个月;日量级设置30个时间链表,对应每月的30天; 时量级设置24个时间链表,对应每天的24个小时;分量级设置60个时间链 表,对应每小时的60分钟;秒量级设置60个时间链表,对应每分钟的60秒; 百毫秒量级设置10个时间链表,对应每秒中的10个百毫秒。(由于本身时间 轮定时器并不是真实的日历,此处不需要考虑闰年闰月和大小月的情况。)

然后,假设时间事件B的时间阈值为10分钟20秒200毫秒(已经归一化 处理)。则CTF确定时间事件B对应的时间阈值包含的当前精度最低的时间分 量为10分钟,则CTF首先把时间事件B列入当前精度最低的10分钟时间链 表;当然,当10分钟时间链表超时后,CTF需要将时间事件B列入下一个当 前精度最低的时间分量所对应时间链表,即20秒时间链表,而到20秒时间链 表超时后,CTF需要继续将时间事件B继续列入一下个当前精度最低的时间分 量所对应的时间链表,即200毫秒时间链表,直到200毫秒时间链表超时才会 对时间事件B进行处理,这一点将在后续实施例中进行详细介绍,此处仅强调 所谓当前精度最低的时间链表是指时间事件B对应的还未超时的链表,已经超 时的时间链表不在考虑之列。

步骤220:CTF采用一个基于当前最高精度的定时器进行循环定时,该定 时器每超时一次,均判断当前是否存在超时的时间链表,在确定存在超时的时 间链表时,开始对该超时的时间链表中记录的已超时的时间事件进行处理,以 及将该超时的时间链表中记录的未超时的每一个时间事件,列入相应的时间阈 值包含的下一个精度级别的时间分量所对应的时间链表,并继续采用所述定时 器进行超时监控。

本发明实施例中,CTF在分别将未超时的每一个时间事件列入相应的时间 阈值所包含的当前精度最低的时间分量所对应的时间链表后,在采用一个基于 当前最高精度的定时器进行循环定时之前,进一步包括:分别针对每一个时间 事件对应的时间链表设置相应的计数器,其中,每一个时间链表对应的计数器 均基于最高精度的定时器的启动而开始计数,当任意一个计数器记录的数值到 达表征相应时间链表超时的预设数值时,即判断上述相应的时间链表超时。

当然,计数器的设置也可以在时间链表生成时即设置完毕,待开始获取时 间事件后便直接使用,本发明实施例中仅以使用哪一个时间链表便设置哪一个 时间链表对应的计数器为例进行说明,这样,可以在一定程度上节省系统开销。

具体的,在执行步骤220时,CTF启动一个基于当前最高精度的定时器进 行循环定时,该定时器每超时一次,CTF判断当前是否存在对应的计数器已到 达指定数值的时间链表,若是,则确定存在超时的时间链表,否则,确定不存 在超时的时间链表。

进一步地,本发明实施例中,CTF将超时的时间链表中记录的未超时的一 个时间事件,列入相应的时间阈值包含的下一个精度级别的时间分量所对应的 时间链表时,在上述时间阈值所表征的时长中删除上述超时的时间列表对应的 精度级别的时长,并将上述一个时间事件列入相应的时间阈值的剩余时长中当 前精度最低的时间分量所对应的时间链表。

本发明实施例中,由一个最高精度的定时器,推动整个时间轮运转。假设 最高精度的定时器其精度为100ms,那么,定时器每超时一次对应一个绝对时 间点,启动时刻为0时刻,第n次超时即为第n*100ms时刻。第1次超时对应 为0年0月0日0时0分0秒100毫秒,此时需要处理的是毫秒级第1个时间 链表,即毫秒级第1个时间链表对应的计数器到达指定数值(如,指定数值为 1),该毫秒级第1个时间链表当前已超时;而第2次超时对应为0年0月0日 0时0分0秒200毫秒,此时需要处理的是毫秒级第2个时间链表,即毫秒级 第2个时间链表对应的计数器到达指定数值(如,指定数值为2),该毫秒级第 2个时间链表当前已超时;第10次超时对应为0年0月0日0时0分1秒000 毫秒,此时需要处理的是秒级第1个时间链表,即秒级第1个时间链表对应的 计数器到达指定数值(如,指定数值为10),该秒级第1个时间链表当前已超 时;第600次超时对应0年0月0日0时1分00秒00,此时需要处理的是分 钟级第1个时间链表,即分钟级第1个时间链表对应的计数器到达指定数值 (如,指定数值为600),该分钟级第1个时间链表当前已超时;以此类推。

本发明实施例中,CTF在判断是否存在超时事件时,可以采用但不限于以 下方法:以时间事件C为例,假设时间事件C对应的时间阈值为50秒500毫 秒,当时间事件C对应的50秒时间链表超时时,CTF将时间事件C的超时时 刻和当前时刻作比较,若时间事件C的超时时刻大于当前时刻,则说明时间事 件C还未到处理时刻,则CTF对时间事件C对应的时间阈值进行继续折解, 折解出下一个时间分量500毫秒,并将时间事件C插入到500毫秒时间链表中, 即将时间事件C接入至下一个当前精度最低的时间链表的表尾)

例如,按照最小精度(100ms)为基准,当前时刻为0年0月0日1时2 分5秒100,CTF获取的时间事件D对应的时间阈值为10分钟。那么,该时 间事件D应在0年0月0日1时12分5秒100ms超时。此时,超时时刻和当 前时刻的年月日时等时刻均相同(时刻为0),而分钟时刻不同,超时时刻为 12分钟,那么CTF应当将时间事件D列入第12个分钟级别时间链表上。当时 间到达0年0月0日1时12分0秒000ms时,CTF扫描第12个分钟级时间链 表,将已超时的第12个分钟级时间链表中记录的时间事件D从TWT中弹出, 再根据未超时的时间事件D的剩余的时间(此例为5秒100ms),计算下一个 精度级别的时间分量(此例为秒级分量为5),并将时间事件D插入第5个秒 级时间链表的表尾。

其中,如果下一精度级别的时间分量为0,则继续向更下一个精度级别拆 解剩余时间分量,直至折解至当前最高的精度级别,如,假设时间事件E的时 间阈值为12分0秒100ms,则CTF将时间事件E从第12个分钟级时间链表 摘除,插入至第1个百毫秒级时间链表的表尾。

基于上述实施例,下面采用一个具体的应用场景对上述实施例作出详细说 明。

假设在0年0月0日1时2分5秒135毫秒产生一个时间事件,称为时间 事件F,假设时间事件的时间阈值为10分钟,那么CTF对该时间事件F的处 理过程如下:

首先,CTF以当前最高的精度为单位计算定时超时时间,假设时间事件F 的时间阈值设置为为0年0月0日1时12分5秒100毫秒。

接着,CTF将时间事件E的超时时刻和当前时刻比较,将时间事件F挂在 最低精度的时间分量对应的时间链表的表尾,即第12个分钟(12分)级时间 链表的尾部。

CTF启动100ms的最高精度定时器,随着最高精度定时器的循环定时,时 间推到0年0月0日1时12分0秒0毫秒的时候,CTF将时间事件E从第12 个分钟级时间链表上摘除,插入到第5个秒级的时间链表的尾部。

接着,随着最高精度定时器的循环定时,时间继续推进到0年0月0日1 时12分5秒0毫秒的时候,CTF将时间事件E从第5个秒级时间链表上摘除, 插入到第1个百毫秒级时间链表的尾部。

最后,随着最高精度定时器的循环定时,时间继续推进到0年0月0日1 时12分5秒100毫秒的时候,时间事件E定时到达,CTF将时间事件E从TWT 中弹出,开始进行处理。

基于上述实施例,参阅图4,本发明实施例中,CTF至少包括处理单元40, 其中,

处理单元40,用于获取待处理的时间事件,并分别确定每一个时间事件的 时间阈值,并分别将每一个时间事件列入相应的时间阈值所包含的当前精度最 低的时间分量所对应的时间链表,以及采用一个基于当前最高精度的定时器进 行循环定时,定时器每超时一次,均判断当前是否存在超时的时间链表,在确 定存在超时的时间链表时,对超时的时间链表中记录的已超时的时间事件进行 处理,以及将超时的时间链表中记录的未超时的每一个时间事件列入相应的时 间阈值包含的下一个精度级别的时间分量所对应的时间链表,并继续采用定时 器进行超时监控。

例如,处理单元40在获知计费触发单元触发计费并将用户的计费相关参 数(例如:时间阈值,承载信息等)传递给自身时,根据获得的计费相关参数 生成一个时间事件,并设置该事件的定时周期,待该时间事件定时到达后再根 据承载信息等统计该承载上的流量,并通过Rf接口将结果反馈给CDF。

处理单元40具体用于:

获取待处理的时间事件,分别确定每一个时间事件对应的用于表征等待处 理所需时间的绝对时长;

分别对每一个时间事件对应的绝对时长进行归一化处理;

将每一件时间事件对应的经归一化处理的绝对时长作为相应的时间事件 的时间阈值。

处理单元40进一步用于:

在分别将每一个时间事件列入相应的时间阈值所包含的当前精度最低的 时间分量所对应的时间链表后,在采用一个基于当前最高精度的定时器进行循 环定时之前,分别针对每一个时间事件对应的时间链表设置相应的计数器。

处理单元40具体用于:

启动定时器进行循环定时之后,定时器每超时一次,判断当前是否存在对 应的计数器已到达指定数值的时间链表,若是,则确定存在超时的时间链表, 否则,确定不存在超时的时间链表。

处理单元40具体用于:

在将超时的时间链表中记录的未超时的一个时间事件列入相应的时间阈 值包含的下一个精度级别的时间分量所对应的时间链表时,在一个时间事件对 应的时间阈值所表征的时长中删除超时的时间列表对应的精度级别的时长,并 将一个时间事件列入相应的时间阈值的剩余时长中当前精度最低的时间分量 所对应的时间链表。

参阅图5所示,本发明实施例中,CTF至少包括处理器50,其中,

处理器50,用于获取待处理的时间事件,并分别确定每一个时间事件的时 间阈值,并分别将每一个时间事件列入相应的时间阈值所包含的当前精度最低 的时间分量所对应的时间链表,以及采用一个基于当前最高精度的定时器进行 循环定时,定时器每超时一次,均判断当前是否存在超时的时间链表,在确定 存在超时的时间链表时,对超时的时间链表中记录的已超时的时间事件进行处 理,以及将超时的时间链表中记录的未超时的每一个时间事件列入相应的时间 阈值包含的下一个精度级别的时间分量所对应的时间链表,并继续采用定时器 进行超时监控。

例如,处理器50在获知计费触发器触发计费并将用户的计费相关参数(例 如:时间阈值,承载信息等)传递给自身时,根据获得的计费相关参数生成一 个时间事件,并设置该事件的定时周期,待该时间事件定时到达后根据承载信 息等统计该承载上的流量,并通过Rf接口将结果反馈给CDF。

处理器50具体用于:

获取待处理的时间事件,分别确定每一个时间事件对应的用于表征等待处 理所需时间的绝对时长;

分别对每一个时间事件对应的绝对时长进行归一化处理;

将每一件时间事件对应的经归一化处理的绝对时长作为相应的时间事件 的时间阈值。

处理器50进一步用于:

在分别将每一个时间事件列入相应的时间阈值所包含的当前精度最低的 时间分量所对应的时间链表后,在采用一个基于当前最高精度的定时器进行循 环定时之前,分别针对每一个时间事件对应的时间链表设置相应的计数器。

处理单元50具体用于:

启动定时器进行循环定时之后,定时器每超时一次,判断当前是否存在对 应的计数器已到达指定数值的时间链表,若是,则确定存在超时的时间链表, 否则,确定不存在超时的时间链表。

处理单元50具体用于:

在将超时的时间链表中记录的未超时的一个时间事件列入相应的时间阈 值包含的下一个精度级别的时间分量所对应的时间链表时,在一个时间事件对 应的时间阈值所表征的时长中删除超时的时间列表对应的精度级别的时长,并 将一个时间事件列入相应的时间阈值的剩余时长中当前精度最低的时间分量 所对应的时间链表。

综上所述,本发明实施例中,将每一个时间事件分别列入相应的时间阈值 包含的当前精度最低的时间分量所对应的时间链表,再通过一个最高精度的定 时器进行循环定时,该定时器每超时一次,便判断是否存在超时的时间链表, 并将超时的时间链表中记录的超时的时间事件弹出进行处理,以及将未超时的 时间链表继续列入其时间阈值包含的下一个精度级别的时间分量对应的时间 链表,并继续采用上述定时器进行监控,这样,相较于现有技术下的实现方式, 可以大大减少定时器数目,不必针对每一个时间事件分别设置相应的定时器, 令定时器数目不再受时间事件的影响,仅采用一个最高精度的定时器便可以推 动整个时间轮的运转,并分别监控每一个时间事件的超时情况,从而有效降低 了系统开销,提升了系统针对时间事件的容量

进一步地,本发明实施例中,将时间事件均匀分布于各个时间分量对应的 时间链表中,可以有效降低时间链表的长度,如,超时时刻和当前时刻相距较 长的时间事件可以位于精度较低的时间链表上,而即将超时的时间事件则位于 精度较高的时间链表上。

并且时间事件无需在时间链表中按照超时顺序寻找插入位置,仅需要插入 对应精度级别的时间链表的尾部即可,从而避免了大容量条件下查询操作和插 入操作所产生的大量系统。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计 算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结 合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包 含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、 CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产 品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和 /或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/ 或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入 式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算 机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一 个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设 备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中 的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个 流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使 得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处 理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个 流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基 本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要 求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱 离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属 于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和 变型在内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号