一种事件提醒业务处理方法

文档序号:6336119阅读:140来源:国知局
专利名称:一种事件提醒业务处理方法
技术领域
本发明涉及事件设定时间监控和提醒的技术,具体涉及一种事件提醒业务处理 方法。
背景技术
一些多用户的服务系统中需要把某个用户设定的事件提醒在规定时间点发送给 该用户,如日程提醒业务。如图1所示,这类服务业务的基本流程是,用户生成事件, 然后系统扫描事件集数据,在达到某一事件触发的时间点时将该事件的提醒通知发送给 指定用户,最后删除该事件。大多数服务系统将事件数据保存到数据库里,然后定时利 用sql语句查找并按时间排序,得到最新的事件,然后根据事件查找到需要通知的用户, 最后将事件提醒通知发送出去。现在的事件提醒业务处理方法存在的问题是用户体验需 求和系统性能的冲突,要提高用户体验,就要在指定的时间点,将事件提醒通知发送给 指定的用户,这样就需要秒级数据库查找频率,也就是每秒钟都要扫描数据库数据表, 看是否达到事件要求的时间点。秒级的数据库查找操作会导致数据库性能急剧下降,因 为一般系统的数据库并不是单一业务的,往往有多种业务逻辑的数据混合在一起,比如 有保存用户登录信息的数据。在用户量和事件量数据巨大的情况下,由于数据库操作的 随机性,此时不但查询用户登录信息时因为数据库执行不了或执行得很慢,导致用户登 录验证变慢,而且也不能保证事件查找的操作能在要求的时间内完成,也就是说数据库 查找事件的方式无法满足事件提醒的实时性要求。

发明内容
本发明要解决的技术问题是提供一种事件提醒业务处理方法,克服现有技术事 件提醒业务处理方法采用数据库查找事件的方式,无法满足事件提醒实时性要求的缺 陷。本发明为解决上述技术问题所采用的技术方案为一种事件提醒业务处理方法,包括步骤Al、将用户设置的事件数据存储到数据库的数据表中,所述事件数据包括事件 发送时间戳;A2、将所述事件发送时间戳大于当前系统时间的所述事件数据缓存到内存的数 据结构中;A3、定时扫描所述数据结构,比较当前系统时间和所述事件发送时间戳;A4、如果当前系统时间大于或者等于所述事件 发送时间戳,则将所述事件数据 发送给所述用户。所述的事件提醒业务处理方法,其中还包括步骤A5:对所述事件数据进行后续处理。所述的事件提醒业务处理方法,其中所述数据表和所述数据结构具有统一的数据格式,所述数据格式包括事件序号字段、事件创建者字段、事件发送时间戳字段、事 件内容字段、被提醒者字段和发送状态字段。所述的事件提醒业务处理方法,其中所述事件发送时间戳设为整型数据。所述的事件提醒业务处理方法,其中在内存中设置主链表,所述主链表按时间 跨度设置节点,并由每个节点派生相应的子链表,由所述子链表的节点存储所述数据结 构。所述的事件提醒业务处理方法,其中所述子链表按所述事件发送时间戳的时间 顺序生成子链表节点。所述的事件提醒业务处理方法,其中对所述事件数据进行的后续处理包括修改 所述数据表,将所述发送状态字段标识为已发送。
所述的事件提醒业务处理方法,其中对所述事件数据进行的后续处理包括删除 子链表节点,如果该子链表节点对应的子链表已删除,则删除对应的主链表节点。本发明的有益效果本发明事件提醒业务处理方法可以大幅度地提高事件数据 的查询效率,满足事件提醒的实时性要求,而不影响系统数据库的性能。


本发明包括如下附图图1为现有技术事件提醒业务处理一般流程示意图;图2为本发明事件提醒业务处理方法流程图;图3为本发明事件提醒业务处理方法主链表和子链表结构示意图;图4为本发明遍历链表流程图;图5为本发明对事件数据进行查询和后续处理流程图。
具体实施例方式下面根据附图和实施例对本发明作进一步详细说明事件数据的关键属性用户设置的事件包括下面几个关键属性事件发送时间一般标准格式为” YYYY-MM-DD HH24:MM:SS",如 “2010-09-0108:00:00”。事件内容如日程提醒开会,消息公共等内容。接收事件的对象可以是单一用户也可以是用户集。事件设置者。根据事件数据的属性特点,为提高查询效率,新增一个属性事件发送时间 戳,即将标准格式的时间转换成整型数据,如“2010-09-0108:00:00”对应的时间戳就是 1283299200。由此,设计数据库数据表的创建SQL脚本如下CREATETABLE、t—event—info、(iIDint(Il)NOTNULL,、CreateUser varchar (32) DEFAULT NULL
’ SendTime、datetime DEFAULT NULL,’Content、varchar (254) DEFAULT NULL,'ReceiverUser varchar (254) DEFAULT NULL,‘ SendTmeStampMnt (11) NOT NULL,' Status'int (2) NOT NULL,PRIMARY KEY (、SendTmeStamp、))详细说明如下ID字段,仅作为事件的序号,随事件数据递增。CreateUser字段,事件创建者。SendTime字段,事件发送时间。Content字段,要发送事件的内容。ReceiveUser字段,接收事件的用户。SendTimeStamp字段,事件发送时间转换的事件发送时间戳,整型数据。Status字段,发送状态,取值为0或1,0为未发送,1为已发送。这个数据表与系统的其他业务数据表一起创建在系统数据库中。根据这个数据表的表结构,举例说明,如小明需要通知小王在2010年9月1号 上午9点整到会议室开会,这个通知要在2010年9月1号上午8点整发送给小王。这样 该事件保存到数据库表t—event—info中的格式如表1所示表 权利要求
1. 一种事件提醒业务处理方法,其特征在于,包括步骤Al、将用户设置的事件数据存储到数据库的数据表中,所述事件数据包括事件发送 时间戳;A2、将所述事件发送时间戳大于当前系统时间的所述事件数据缓存到内存的数据结 构中;A3、定时扫描所述数据结构,比较当前系统时间和所述事件发送时间戳;A4、如果当前系统时间大于或者等于所述事件发送时间戳,则将所述事件数据发送 给所述用户。
2.根据权利要求1所述的事件提醒业务处理方法,其特征在于,还包括步骤A5:对 所述事件数据进行后续处理。
3.根据权利要求2所述的事件提醒业务处理方法,其特征在于所述数据表和所述 数据结构具有统一的数据格式,所述数据格式包括事件序号字段、事件创建者字段、事 件发送时间戳字段、事件内容字段、被提醒者字段和发送状态字段。
4.根据权利要求3所述的事件提醒业务处理方法,其特征在于所述事件发送时间 戳设为整型数据。
5.根据权利要求4所述的事件提醒业务处理方法,其特征在于在内存中设置主链 表,所述主链表按时间跨度设置节点,并由每个节点派生相应的子链表,由所述子链表 的节点存储所述数据结构。
6.根据权利要求5所述的事件提醒业务处理方法,其特征在于所述子链表按所述 事件发送时间戳的时间顺序生成子链表节点。
7.根据权利要求2所述的事件提醒业务处理方法,其特征在于对所述事件数据进 行的后续处理包括修改所述数据表,将所述发送状态字段标识为已发送。
8.根据权利要求7所述的事件提醒业务处理方法,其特征在于对所述事件数据进 行的后续处理包括删除子链表节点,如果该子链表节点对应的子链表已删除,则删除对 应的主链表节点。
全文摘要
本发明公开了一种事件提醒业务处理方法,包括步骤A1、将用户设置的事件数据存储到数据库的数据表中,所述事件数据包括事件发送时间戳;A2、将所述事件发送时间戳大于当前系统时间的所述事件数据缓存到内存的数据结构中;A3、定时扫描所述数据结构,比较当前系统时间和所述事件发送时间戳;A4、如果当前系统时间大于或者等于所述事件发送时间戳,则将所述事件数据发送给所述用户。本发明事件提醒业务处理方法可以大幅度地提高事件数据的查询效率,满足事件提醒的实时性要求,而不影响系统数据库的性能。
文档编号G06F17/30GK102012909SQ20101054827
公开日2011年4月13日 申请日期2010年11月17日 优先权日2010年11月17日
发明者张代军, 谢坚 申请人:深圳市多赢软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1