CN103179017A - 事件提醒方法和系统 - Google Patents
事件提醒方法和系统 Download PDFInfo
- Publication number
- CN103179017A CN103179017A CN2011104330276A CN201110433027A CN103179017A CN 103179017 A CN103179017 A CN 103179017A CN 2011104330276 A CN2011104330276 A CN 2011104330276A CN 201110433027 A CN201110433027 A CN 201110433027A CN 103179017 A CN103179017 A CN 103179017A
- Authority
- CN
- China
- Prior art keywords
- reminder events
- time
- tables
- finds
- message queue
- 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
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computer And Data Communications (AREA)
Abstract
一种事件提醒方法,包括以下步骤:获取当前时间,在与当前时间所属的时间区间对应的所述数据表中查找以当前时间为触发时间的提醒事件,将查找到的提醒事件加入消息队列中;从消息队列中提取提醒事件并推送给用户;其中,所述数据表为预先设置的与时间切片后的一个时间区间对应的数据表,所述数据表中存储了触发时间在所述时间区间内的提醒事件。该方法能提高事件提醒的精确度而不会增加服务器资源浪费。此外,还提供了一种事件提醒系统。
Description
【技术领域】
本发明涉及互联网技术,尤其涉及一种事件提醒方法和系统。
【背景技术】
随着互联网技术的发展,很多互联网应用都提供了提醒服务,用户可以设置提醒事件和触发时间,当到达触发时间则将提醒事件推送给用户。传统的事件提醒方法通常是将用户提交的提醒事件和触发时间分开存储在服务器,即设置提醒事件表和提醒信息表,在提醒事件表中存储事件标识和触发时间,在提醒信息表中存储事件标识和事件的具体内容,并在提醒事件表中将不同的事件按触发时间进行排序。
传统的事件提醒方法通常采用定时轮询的方式实现提醒服务,服务器需按照一定的时间间隔对数据库表进行查询,先从提醒事件表中获取最近的一条或多条记录,然后根据提醒事件表中的事件标识从提醒信息表中查找对应的事件的具体内容,从提醒信息表中取出查找到的一条或多条提醒事件并推送给用户。
然而,传统的这种事件提醒方法,由于必须按照一定的时间间隔去查询,如果间隔时间太短,则服务器大量的操作都在判断事件是否超时,服务器的资源浪费较高;如果间隔时间太长,又不能保证事件提醒的精确度,可能造成事件提醒的延迟较大。
【发明内容】
基于此,有必要提供一种能提高事件提醒的精确度而不会增加服务器资源浪费的事件提醒方法。
一种事件提醒方法,包括以下步骤:
获取当前时间,在与当前时间所属的时间区间对应的所述数据表中查找以当前时间为触发时间的提醒事件,将查找到的提醒事件加入消息队列中;
从消息队列中提取提醒事件并推送给用户;
其中,所述数据表为预先设置的与时间切片后的一个时间区间对应的数据表,所述数据表中存储了触发时间在所述时间区间内的提醒事件。
此外,还有必要提供一种能提高事件提醒的精确度而不会增加服务器资源浪费的事件提醒系统。
一种事件提醒系统,包括:
;
逻辑处理服务器,用于获取当前时间,在与当前所述的时间区间对应的数据表中查找以当前时间为触发时间的提醒事件,将查找到的提醒事件加入消息队列中;
推送服务器,用于从消息队列中提取提醒事件并推送给用户;
其中,所述数据表为预先设置的与时间切片后的一个时间区间对应的数据表,所述数据表中存储了触发时间在所述时间区间内的提醒事件。
上述事件提醒方法和系统,由于数据表为预先设置的与时间切片后的一个时间区间对应的数据表,通过将提醒事件存储在与触发时间所属的时间区间对应的数据表中,在查找以当前时间为触发时间的提醒事件时,则可直接在与当前时间所属的时间区间对应的数据表中进行查找。由于本发明基于当前时间触发查找,因此能提高事件提醒的精确度。且由于数据表根据时间区间进行了细分,数据表中仅存储一个时间区间内的提醒事件,查找时仅在对应时间区间的一个数据表中进行查找即可,因此不会增加服务器的资源浪费。
【附图说明】
图1为一个实施例中事件提醒方法的流程示意图;
图2为一个实施例中将查找到的提醒事件加入消息队列的流程示意图;
图3为一个实施例中事件提醒系统的示意图;
图4为一个实施例中逻辑处理服务器的示意图;
图5为另一个实施例中逻辑处理服务器的示意图。
【具体实施方式】
如图1所示,在一个实施例中,一种事件提醒方法,包括以下步骤:
步骤S102,获取当前时间,在与当前时间所属的时间区间对应的数据表中查找以当前时间为触发时间的提醒事件,将查找到的提醒事件加入消息队列中。
本实施例中,数据表为预先设置的与时间切片后的一个时间区间对应的数据表,该数据表中存储了触发时间在时间区间内的提醒事件。
在一个实施例中,可获取用户提交的提醒事件和触发时间,然后将提醒事件存储在与触发时间所属的时间区间对应的数据表中。
具体的,用户可通过Web页面或客户端提供的用户界面提交提醒事件和触发时间。提醒事件可包括事件名称和事件内容等,数据库可通过数据接口获取到用户提交的提醒事件和触发时间。例如用户提交的事件名称为“工作提醒”,事件内容为“统计财务报表”。触发时间可精确到分、秒,例如触发时间为9点15分或9点15分20秒等。
具体的,在数据库中预先创建数据表,每个数据表对应一个时间区间,该时间区间是对时间切片后得到的。优选的,可以每天的24小时进行时间切片,以粒度T=10分钟切分每天的24小时,则数据库中设有144个数据表(可命名为tb_0000~tb_2350),每个数据表用于存储10分钟内的提醒事件。例如,设置表名为tb_0000的数据表负责存储时间区间为00:00~00:09的提醒事件,在这个时间区间内触发的提醒事件都会存储在该数据表中。由于时间切片的粒度越小,需要的数据表也越多,具体可根据业务需求量确定时间区间的长度。例如,也可设置每个数据表负责存储5分钟、20分钟或30分钟内的提醒事件。
此外,在数据库中还设有索引表,用于存储数据表与时间区间的对应关系,例如数据表表名为tb_0000对应时间区间为00:00~00:09。
在一个实施例中,数据库可为MySQL(一种关联数据库管理系统)数据库,在查找时,则可通过SQL(结构化查询语言)查找提醒事件,因此能够增加查找速度以及查找的灵活性。
优选的,可根据触发时间的精确度在每个时间点查找一次以当前时间为触发时间的提醒事件。例如,若触发时间可精确到秒,则每秒执行一次步骤S30。具体的,可获取当前时间的时间点,确定当前时间的时间点所属的时间区间,然后获取该时间区间对应的数据表,在该数据表中查找以当前时间为触发时间的提醒事件。例如,当前时间为00:01:20,获取到该时间点所属的时间区间为00:00~00:09,则对应的数据表为表tb_0000,在表tb_0000中进行查找。
步骤S104,从消息队列中提取提醒事件并推送给用户。
进一步的,在数据库中还可记录用户标识和用户提交的提醒事件的对应关系,则在推送时,根据该对应关系将提醒事件推送给对应的用户。
由于查找到的提醒事件按加入的顺序排列在消息队列中,在推送给用户时,可直接从消息队列中取出位于队列头部的提醒事件。进一步的,可将取出的提醒事件通过邮件、短信或消息的方式发送到Web页面或客户端,并通过Web页面或客户端的用户界面进行展示。
在一个实施例中,数据表中的字段包括提醒事件信息字段、触发时间字段和循环类型标识字段。其中,提醒事件信息字段负责存储提醒事件信息,包括事件ID、事件名称、事件内容、更新时间等;其中,事件ID用于唯一标识一个提醒事件;事件名称和事件内容为提醒事件的具体内容;更新时间为提醒事件最近更新的时间。触发时间字段负责存储提醒事件对应的触发时间。
进一步的,在一个实施例中,循环类型标识字段负责存储用户设置的循环类型,可包括单次触发标识字段和/或多次触发标识字段。其中,单次触发是指事件只提醒一次,多次触发是指事件需循环提醒。在一个实施例中,如图2所示,将查找到的提醒事件加入消息队列中的具体过程包括:
步骤S202,获取查找到的提醒事件对应的循环类型标识。
步骤S204,根据查找到的提醒事件对应的循环类型标识判断提醒事件的循环类型,若循环类型为单次触发,则进入步骤S206,若循环类型为多次触发,则进入步骤S208。
步骤S206,将查找到的提醒事件加入消息队列中,并删除数据表中该查找到的提醒事件的记录。
由于单次触发的提醒事件仅需提醒一次即可,因此加入消息队列中后就可将对应数据表中的该条记录删除,以节省数据库的存储空间。
步骤S208,根据多次触发标识将查找到的提醒事件加入消息队列中。
在一个实施例中,多次触发标识字段包括日循环标识字段、周循环标识字段、月循环标识字段和年循环标识字段中的至少一种。
进一步的,在一个实施例中,数据表中的字段还包括最近触发时间字段,负责存储提醒事件上一次被触发的时间。本实施例中,数据表中的字段可如表1所示:
表1
其中,扩展字段为预留字段,用于扩展其他与事件相关的字段。
本实施例中,循环类型标识字段可针对提供的循环类型设置多个比特位,每一比特位标识一种循环类型。优选的,循环类型标识字段可使用一个32位的无符整型来存储循环类型,如表2所示:
表2
32~12预留 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
其中,第0位标识是否为单次触发;第1位标识是否为日循环;第2位标识是否为周循环,且第3~9位标识从星期一到星期天是否循环;第10位标识是否为月循环,第11位标识是否为年循环,第12~32位为预留字段。
进一步的,本实施例中,步骤S208的具体过程为:
根据多次触发标识判断提醒事件的多次触发类型;若多次触发类型为日循环,则将查找到的提醒事件加入消息队列中;若多次触发类型为周循环;则根据周循环标识将查找到的提醒事件加入消息队列中;若多次触发类型为月循环,则在当前时间与最近触发时间相差一个月时,将查找到的提醒事件加入消息队列中;若多次触发类型为年循环,则在当前时间与最近触发时间相差一年时,将查找到的提醒事件加入消息队列中。
具体的,当循环类型标识字段的第0位标识了提醒事件的循环类型是多次触发,例如第0位标识为“1”,则为单次触发,第0位标识为“0”,则为多次触发。当判断得到循环类型为多次触发时,则根据第1位进一步判断是否为日循环(即提醒事件需在每天的同一时间点触发),如果是,则直接将查找到的提醒事件加入消息队列中。
如果不是日循环,可进一步判断是否为周循环(即提醒事件需在每周的同一天的同一时间点触发),如果是,则进一步获取第3~9位。例如设置每周的星期一和星期三的同一时间点触发提醒事件,则第3位和第5位可标识为“1”。然后进一步判断当前时间是否为星期三或星期五,如果是,则将查找到的提醒事件加入消息队列中。
如果不是周循环,可进一步判断是否为月循环(即提醒事件需在每月的同一天的同一时间点触发)。例如,用户设置了每月的1号的同一时间点需触发提醒事件,则第10位可标识为“1”,然后获取当前时间,判断当前时间是否与最近触发时间相差一个月,若是,则表明已到达该月的1号,则将查找到的提醒事件加入消息队列中。
如果不是月循环,可进一步判断是否为年循环(即提醒事件需在每年的同一天的同一时间点触发)。例如,用户设置了每年的2月14日的同一时间点需触发提醒事件,则第11位可标识为“1”,然后获取当前时间,判断当前时间是否与最近触发时间相差一年,若是,则表明已到达这一年的2月14日,则可将查找到的提醒事件加入消息队列中。
另外,本实施例中,在每次将查找到的提醒事件加入消息队列中后,可将当前时间存储到该提醒事件对应的最近触发时间字段中,以便用于下一次判断提醒事件的循环类型。
本实施例中,将循环类型标识存储为一个整数,即以比特位来对应一种循环类型,能够节省数据表的存储空间,又能满足用户的多种设置需求,使用简单。此外,由于一次查询就可以得到循环类型标识字段,从而得到用户设置的循环类型,因此能够提高执行效率。
进一步的,在一个实施例中,数据表包括单次触发类型数据表和多次触发类型数据表。本实施例中,将提醒事件存储在与触发事件所属的时间区间对应的数据表的步骤包括:若用户提交的提醒事件的循环类型为单次触发,则将提醒事件存储在与触发事件所属的时间区间对应的单次触发类型数据表中;若用户提交的提醒事件的循环类型为多次触发,则将提醒事件存储在与触发时间所属的时间区间对应的多次触发类型数据表中。
具体的,预先将数据表分为两种类型,一种只存储单次触发类型的提醒事件,即单次触发类型数据表,一种只存储多次触发类型的提醒事件,即多次触发类型的数据表。而每种数据表也是对应时间切片后的一个时间区间的。例如,表名为tb_0000_A负责存储时间区间为00:00~00:09的单次触发的提醒事件;表名为tb_0000_B负责存储时间区间为00:00~00:09的多次触发的提醒事件。
进一步的,对于单次触发类型数据表,可设置该数据表中不包含多次触发标识字段。对于多次触发类型数据表,可设置该数据表中不包含单次触发标识字段,从而节省了数据表的存储空间。由于根据循环类型将提醒事件分开进行存储,在查找是否有以当前时间为触发时间的提醒事件时,也可根据循环类型在对应循环类型的数据表中进行查找,因此能够减少每次需处理的提醒事件的数量,减少了对数据库的读写压力,提高了执行效率。
由于可能会有大量用户会聚集在同一时间点提交提醒事件,因此会导致这一时间点需触发的提醒事件高度集中,从而导致数据库中对应该时间点的提醒事件的记录非常多,例如可能会超过100万个记录。这样,可能会导致查找的效率变低,从而导致提醒事件的延迟推送。
因此,在一个实施例中,上述方法还包括:若获取的同一触发时间对应的提醒事件的数量超过阈值,则按照预设长度分割与该同一触发时间点所属的时间区间对应的数据表。
例如,表名为tb_0000的数据表负责存储时间区间为00:00~00:09的提醒事件,若在该时间区间内的某一触发时间对应的提醒事件的数量超过阈值,则将数据表tb_0000进行分割,例如可将第1~100000条记录存储在数据表A中,将第100001~200000条记录存储在数据表B中。这样,使得数据表中存储的提醒事件的数量不会非常大,避免了因有大量用户聚集在同一时间点提交提醒事件而导致事件推送延迟的情形。
本实施例中,按照预设长度分割与上述同一触发时间点所属的时间区间对应的数据表后,还需更新索引表,将该时间区间对应分割后的数据表的表名。例如,上述数据表tb_0000分割后得到数据表A的表名为tb_0000A,数据表B的表名为tb_0000B,在索引表中,时间区间00:00~00:09对应表tb_0000,则更新索引表后,时间区间00:00~00:09对应tb_0000A和tb_0000B。
在一个实施例中,还可通过与数据库连接的数据接口对数据库中的提醒事件进行查询、修改等。例如,通过Web或C/S接口方式对提醒事件进行查询、修改等。
在一个实施例中,如图3所示,一种事件提醒系统100,包括逻辑处理服务器104和推送服务器106,其中:
逻辑处理服务器104用于获取当前时间,在与当前时间所属的时间区间对应的数据表中查找以当前时间为触发时间的提醒事件,将查找到的提醒事件加入消息队列中。
本实施例中,数据表为预先设置的与时间切片后的一个时间区间对应的数据表,该数据表中存储了触发时间在时间区间内的提醒事件。
在一个实施例中,事件提醒系统100还可包括用于存储数据表的数据库102,该数据库102用于获取用户提交的提醒事件和触发时间,然后将提醒事件存储在与触发时间所属的时间区间对应的数据表中。
具体的,用户可通过Web页面或客户端提供的界面提交提醒事件和触发时间。提醒事件可包括事件名称和事件内容等,数据库102可通过数据接口获取到用户提交的提醒事件和触发时间。
数据库102中预先存储了数据表,每个数据表对应一个时间区间,该时间区间是对时间切片后得到的。优选的,可以每天的24小时进行时间切片,以粒度T=10分钟切分每天的24小时,则数据库102中设有144个数据表(可命名为tb_0000~tb_2350),每个数据表用于存储10分钟内的提醒事件。例如,设置表名为tb_0000的数据表负责存储时间区间为00:00~00:09的提醒事件,在这个时间区间内触发的提醒事件都会存储在该数据表中。由于时间切片的粒度越小,需要的数据表也越多,具体可根据业务需求量确定时间区间的长度。此外,在数据库102中还设有索引表,用于存储数据表与时间区间的对应关系。
在一个实施例中,数据库102可为MySQL数据库,则逻辑处理服务器104可用于通过SQL(结构化查询语言)查找提醒事件,因此能够增加查找速度以及查找的灵活性。
优选的,逻辑处理服务器104可用于根据触发时间的精确度在每个时间点查找一次以当前时间为触发时间的提醒事件。例如,若触发时间可精确到秒,则逻辑处理服务器104每秒执行一次查找。具体的,逻辑处理服务器104可获取当前时间的时间点,确定当前时间的时间点所属的时间区间,然后获取该时间区间对应的数据表,在该数据表中查找以当前时间为触发时间的提醒事件。
推送服务器106用于从消息队列中提取提醒时间并推送给用户。
进一步的,在数据库102中还可记录用户标识和用户提交的提醒事件的对应关系,则推送服务器106在推送时,根据该对应关系将提醒事件推送给对应的用户。
由于查找到的提醒事件按加入的顺序排列在消息队列中,推送服务器106在推送给用户时,可直接从消息队列中取出位于队列头部的提醒事件。进一步的,推送服务器106可用于将取出的提醒事件通过邮件、短信或消息的方式发送到Web页面或客户端,并通过Web页面或客户端的用户界面进行展示。
应当说明的是,在数据库102执行存储的过程中,逻辑处理服务器104可同时执行查找,即在存储提醒事件的过程中可同时根据当前时间触发查找。
在一个实施例中,数据表中的字段包括提醒事件信息字段、触发时间字段和循环类型标识字段。其中,提醒事件信息字段负责存储提醒事件信息,包括事件ID、事件名称、事件内容、更新时间等;其中,事件ID用于唯一标识一个提醒事件;事件名称和事件内容为提醒事件的具体内容;更新时间为提醒事件最近更新的时间。触发时间字段负责存储提醒事件对应的触发时间。
进一步的,在一个实施例中,循环类型标识字段负责存储用户设置的循环类型,可包括单次触发标识字段和/或多次触发标识字段。其中,单次触发是指事件只提醒一次,多次触发是指事件需循环提醒。
在一个实施例中,如图4所示,逻辑处理服务器104包括查找模块114、循环类型标识获取模块124、第一循环类型判断模块134和消息队列管理模块144,其中:
查找模块114用于在与当前所述的时间区间对应的数据表中查找以当前时间为触发时间的提醒事件。循环类型标识获取模块124用于获取查找到的提醒事件对应的循环类型标识。第一循环类型判断模块134用于根据查找到的提醒事件对应的循环类型标识判断提醒事件的循环类型。消息队列管理模块144用于当循环类型为多次触发时,则根据多次触发标识将查找到的提醒事件加入消息队列中。
在一个实施例中,多次触发标识字段包括日循环标识字段、周循环标识字段、月循环标识字段和年循环标识字段中的至少一种。
进一步的,在一个实施例中,数据表中的字段还包括最近触发时间字段,负责存储提醒事件上一次被触发的时间。本实施例中,数据表中的字段可如上述表1所示。循环类型标识字段可针对提供的循环类型设置多个比特位,每一比特位标识一种循环类型。优选的,循环类型标识字段可使用一个32位的无符整型来存储循环类型,如上述表2所示。
本实施例中,如图5所示,逻辑处理服务器104还包括第二循环类型判断模块154,用于根据多次触发标识判断提醒事件的多次触发类型。
本实施例中,消息队列管理模块144还用于若多次触发类型为日循环,则将查找到的提醒事件加入消息队列中;若多次触发类型为周循环;则根据周循环标识将查找到的提醒事件加入消息队列中;若多次触发类型为月循环,则在当前时间与最近触发时间相差一个月时,将查找到的提醒事件加入消息队列中;若多次触发类型为年循环,则在当前时间与最近触发时间相差一年时,将查找到的提醒事件加入消息队列中。
具体的,当第一循环类型判断模块134判断得到循环类型为多次触发时,则第二循环类型判断模块154根据第1位进一步判断是否为日循环(即提醒事件需在每天的同一时间点触发),如果是,则通过消息队列管理模块144直接将查找到的提醒事件加入消息队列中。
如果不是日循环,第二循环类型判断模块154可进一步判断是否为周循环(即提醒事件需在每周的同一天的同一时间点触发),如果是,则进一步获取第3~9位。例如设置每周的星期一和星期三的同一时间点触发提醒事件,则第3位和第5位可标识为“1”。然后进一步判断当前时间是否为星期三或星期五,如果是,则通过消息队列管理模块144将查找到的提醒事件加入消息队列中。
如果不是周循环,第二循环类型判断模块154可进一步判断是否为月循环(即提醒事件需在每月的同一天的同一时间点触发)。例如,用户设置了每月的1号的同一时间点需触发提醒事件,则第10位可标识为“1”,然后获取当前时间,判断当前时间是否与最近触发时间相差一个月,若是,则表明已到达该月的1号,则将查找到的提醒事件加入消息队列中。
如果不是月循环,第二循环类型判断模块154可进一步判断是否为年循环(即提醒事件需在每年的同一天的同一时间点触发)。例如,用户设置了每年的2月14日的同一时间点需触发提醒事件,则第11位可标识为“1”,然后获取当前时间,判断当前时间是否与最近触发时间相差一年,若是,则表明已到达这一年的2月14日,则可通过消息队列管理模块144将查找到的提醒事件加入消息队列中。
本实施例中,消息队列管理模块144每次将查找到的提醒事件加入消息队列中后,数据库102可将当前时间存储到该提醒事件对应的最近触发时间字段中,以便用于下一次判断提醒事件的循环类型。
进一步的,在一个实施例中,数据表包括单次触发类型数据表和多次触发类型数据表。本实施例中,数据库102还用于若用户提交的提醒事件的循环类型为单次触发,则将提醒事件存储在与触发事件所属的时间区间对应的单次触发类型数据表中;若用户提交的提醒事件的循环类型为多次触发,则将提醒事件存储在与触发时间所属的时间区间对应的多次触发类型数据表中。本实施例中,逻辑处理服务器104还用于根据循环类型去对应的数据表中查找以当前时间为触发时间的提醒事件。
进一步的,在一个实施例中,数据库102还用于若获取的同一触发时间对应的提醒事件的数量超过阈值,则按照预设长度分割与该同一触发时间点所属的时间区间对应的数据表。进一步的,本实施例中,数据库102还用于更新索引表,将该时间区间对应分割后的数据表的表名。
在一个实施例中,上述事件提醒系统还可包括接口服务器(图中未示出),用于提供用户提交、查询、修改提醒事件的接口。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (14)
1.一种事件提醒方法,包括以下步骤:
获取当前时间,在与当前时间所属的时间区间对应的数据表中查找以当前时间为触发时间的提醒事件,将查找到的提醒事件加入消息队列中;
从消息队列中提取提醒事件并推送给用户;
其中,所述数据表为预先设置的与时间切片后的一个时间区间对应的数据表,所述数据表中存储了触发时间在所述时间区间内的提醒事件。
2.根据权利要求1所述的事件提醒方法,其特征在于,所述数据表中的字段包括提醒事件信息字段、触发时间字段和循环类型标识字段。
3.根据权利要求1所述的事件提醒方法,其特征在于,所述循环类型标识字段包括单次触发标识字段和/或多次触发标识字段;所述将查找到的提醒事件加入消息队列中的步骤包括:
获取所述查找到的提醒事件对应的循环类型标识;
根据所述查找到的提醒事件对应的循环类型标识判断提醒事件的循环类型,若所述循环类型为多次触发,则根据多次触发标识将所述查找到的提醒事件加入消息队列中。
4.根据权利要求3所述的事件提醒方法,其特征在于,所述数据表中的字段还包括最近触发时间字段;所述根据多次触发标识将所述查找到的提醒事件循环加入消息队列中的步骤包括:
根据所述多次触发标识判断提醒事件的多次触发类型;
若所述多次触发类型为日循环,则将查找到的提醒事件加入消息队列中;
若所述多次触发类型为周循环,则根据周循环标识将查找到的提醒事件加入消息队列中;
若所述多次触发类型为月循环,则在当前时间与最近触发时间相差一个月时,将查找到的提醒事件加入消息队列中;
若所述多次触发类型为年循环,则在当前时间与最近触发时间相差一年时,将查找到的提醒事件加入消息队列中。
5.根据权利要求3所述的事件提醒方法,其特征在于,所述将查找到的提醒事件推送给用户的步骤还包括:
若所述循环类型为单次触发,则将查找到的提醒事件加入消息队列中,并删除所述数据表中所述查找到的提醒事件的记录。
6.根据权利要求3所述的事件提醒方法,其特征在于,所述数据表包括单次触发类型数据表和多次触发类型数据表;所述将提醒事件存储在与所述触发时间所属的时间区间对应的数据表中的步骤包括:
若用户提交的提醒事件的循环类型为单次触发,则将所述提醒事件存储在与所述触发时间所属的时间区间对应的单次触发类型数据表中;
若用户提交的提醒事件的循环类型为多次触发,则将所述提醒事件存储在与所述触发时间所属的时间区间对应的多次触发类型数据表中。
7.根据权利要求1所述的事件提醒方法,其特征在于,所述方法还包括:
若获取的同一触发时间对应的提醒事件的数量超过阈值,则按照预设长度分割与所述同一触发时间所属的时间区间对应的数据表。
8.一种事件提醒系统,其特征在于,包括:
逻辑处理服务器,用于获取当前时间,在与当前所述的时间区间对应的数据表中查找以当前时间为触发时间的提醒事件,将查找到的提醒事件加入消息队列中;
推送服务器,用于从消息队列中提取提醒事件并推送给用户;
其中,所述数据表为预先设置的与时间切片后的一个时间区间对应的数据表,所述数据表中存储了触发时间在所述时间区间内的提醒事件。
9.根据权利要求8所述的事件提醒系统,其特征在于,所述数据表中的字段包括提醒事件信息字段、触发时间字段和循环类型标识字段。
10.根据权利要求9所述的事件提醒系统,其特征在于,所述循环类型标识字段包括单次触发标识字段和/或多次触发标识字段;逻辑处理服务器包括:
查找模块,用于在与当前所述的时间区间对应的数据表中查找以当前时间为触发时间的提醒事件;
循环类型标识获取模块,用于获取查找到的提醒事件对应的循环类型标识;
第一循环类型判断模块,用于根据所述查找到的提醒事件对应的循环类型标识判断提醒事件的循环类型;
消息队列管理模块,用于当循环类型为多次触发时,则根据多次触发标识将所述查找到的提醒事件加入消息队列中。
11.根据权利要求10所述的事件提醒系统,其特征在于,所述数据表中的字段还包括最近触发时间字段;所述逻辑处理服务器还包括:
第二循环类型判断模块,用于根据所述多次触发标识判断提醒事件的多次触发类型;
所述消息队列管理模块还用于当所述多次触发类型为日循环时,则将查找到的提醒事件加入消息队列中;当所述多次触发类型为周循环时,则根据周循环标识将查找到的提醒事件加入消息队列中;当所述多次触发类型为月循环时,则在当前时间与最近触发时间相差一个月时将查找到的提醒事件加入消息队列中;以及当所述多次触发类型为年循环时,则在当前时间与最近触发时间相差一年时,将查找到的提醒事件加入消息队列中。
12.根据权利要求9所述的事件提醒系统,其特征在于,所述消息队列管理模块还用于当所述循环类型为单次触发,则将查找到的提醒事件加入消息队列中;
所述逻辑处理服务器还包括:删除模块,用于当所述循环类型为单次触发时,在消息队列管理模块将查找到的提醒事件加入消息队列后,删除所述数据表中所述查找到的提醒事件的记录。
13.根据权利要求9所述的事件提醒系统,其特征在于,所述数据表包括单次触发类型数据表和多次触发类型数据表;
所述数据库还用于若用户提交的提醒事件的循环类型为单次触发,则将所述提醒事件存储在与所述触发时间所属的时间区间对应的单次触发类型数据表中;以及还用于若用户提交的提醒事件的循环类型为多次触发,则将所述提醒事件存储在与所述触发事件所属的时间区间对应的多次触发类型数据表中。
14.根据权利要求8所述的事件提醒系统,其特征在于,所述数据库还用于若获取的同一触发时间对应的提醒事件的数量超过阈值,则按照预设长度分割所述与所述同一触发时间所属的时间区间对应的数据表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110433027.6A CN103179017B (zh) | 2011-12-21 | 2011-12-21 | 事件提醒方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110433027.6A CN103179017B (zh) | 2011-12-21 | 2011-12-21 | 事件提醒方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103179017A true CN103179017A (zh) | 2013-06-26 |
CN103179017B CN103179017B (zh) | 2016-08-03 |
Family
ID=48638648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110433027.6A Active CN103179017B (zh) | 2011-12-21 | 2011-12-21 | 事件提醒方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103179017B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104378400A (zh) * | 2013-08-15 | 2015-02-25 | 腾讯科技(深圳)有限公司 | 数据分散并发方法和装置 |
WO2015096600A1 (zh) * | 2013-12-27 | 2015-07-02 | 北京金山办公软件有限公司 | 一种文档推送提醒方法及装置 |
CN108074189A (zh) * | 2016-11-14 | 2018-05-25 | 平安科技(深圳)有限公司 | 保单推送方法和装置 |
CN108449405A (zh) * | 2018-03-13 | 2018-08-24 | 平安科技(深圳)有限公司 | 事件提醒方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1484800A (zh) * | 2000-08-28 | 2004-03-24 | ��Ѷ�о�����˾ | 从主系统向移动设备推送日程表事件消息的系统和方法 |
CN1933456A (zh) * | 2005-09-16 | 2007-03-21 | 腾讯科技(深圳)有限公司 | 一种即时通信中按照时间段自动回复的方法及系统 |
CN101141587A (zh) * | 2007-09-05 | 2008-03-12 | 康佳集团股份有限公司 | 利用电子节目指南进行电视节目提醒的方法 |
US20090320047A1 (en) * | 2008-06-23 | 2009-12-24 | Ingboo Inc. | Event Bundling |
CN101969496A (zh) * | 2010-08-25 | 2011-02-09 | 宇龙计算机通信科技(深圳)有限公司 | 一种数据交互的方法、移动终端 |
-
2011
- 2011-12-21 CN CN201110433027.6A patent/CN103179017B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1484800A (zh) * | 2000-08-28 | 2004-03-24 | ��Ѷ�о�����˾ | 从主系统向移动设备推送日程表事件消息的系统和方法 |
CN1933456A (zh) * | 2005-09-16 | 2007-03-21 | 腾讯科技(深圳)有限公司 | 一种即时通信中按照时间段自动回复的方法及系统 |
CN101141587A (zh) * | 2007-09-05 | 2008-03-12 | 康佳集团股份有限公司 | 利用电子节目指南进行电视节目提醒的方法 |
US20090320047A1 (en) * | 2008-06-23 | 2009-12-24 | Ingboo Inc. | Event Bundling |
CN101969496A (zh) * | 2010-08-25 | 2011-02-09 | 宇龙计算机通信科技(深圳)有限公司 | 一种数据交互的方法、移动终端 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104378400A (zh) * | 2013-08-15 | 2015-02-25 | 腾讯科技(深圳)有限公司 | 数据分散并发方法和装置 |
WO2015096600A1 (zh) * | 2013-12-27 | 2015-07-02 | 北京金山办公软件有限公司 | 一种文档推送提醒方法及装置 |
CN108074189A (zh) * | 2016-11-14 | 2018-05-25 | 平安科技(深圳)有限公司 | 保单推送方法和装置 |
CN108449405A (zh) * | 2018-03-13 | 2018-08-24 | 平安科技(深圳)有限公司 | 事件提醒方法、装置、计算机设备和存储介质 |
WO2019174129A1 (zh) * | 2018-03-13 | 2019-09-19 | 平安科技(深圳)有限公司 | 事件提醒方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103179017B (zh) | 2016-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111459985B (zh) | 标识信息处理方法及装置 | |
US20090248688A1 (en) | Heuristic event clustering of media using metadata | |
CN111460023A (zh) | 基于Elasticsearch的业务数据处理方法、装置、设备及存储介质 | |
CA2722320C (en) | Paging hierarchical data | |
CN106933836B (zh) | 一种基于分表的数据存储方法和系统 | |
CN110647512B (zh) | 一种数据存储和分析方法、装置、设备和可读介质 | |
CN108268565B (zh) | 基于数据仓库处理用户浏览行为数据的方法及系统 | |
CN102769781A (zh) | 推荐电视节目的方法及装置 | |
CN101739292A (zh) | 基于应用特征的异构集群作业自适应调度方法和系统 | |
CN103605651A (zh) | 一种基于olap多维分析的数据处理展现方法 | |
CN111767327B (zh) | 数据流间具有依赖关系的数据仓库构建方法与系统 | |
CN102521374B (zh) | 基于关系型联机分析处理的智能数据聚集方法及其系统 | |
CN101719135A (zh) | 一种政务资源目录控制系统及方法 | |
CN103179017A (zh) | 事件提醒方法和系统 | |
US20140071135A1 (en) | Managing activities over time in an activity graph | |
CN103164525A (zh) | Web应用发布方法和装置 | |
WO2021073260A1 (zh) | 对象管理方法、装置、计算机设备和存储介质 | |
CN101710320A (zh) | 统计指标数据处理方法及装置 | |
US11392606B2 (en) | System and method for converting user data from disparate sources to bitmap data | |
CN104142930A (zh) | 通用δ数据装载 | |
CN107783974B (zh) | 数据处理系统及方法 | |
CN105183391B (zh) | 一种分布式数据平台下数据存储的方法和装置 | |
CN101408882B (zh) | 一种授权文档的检索方法和系统 | |
WO2016141722A1 (zh) | 时序数据处理方法及装置 | |
US7512617B2 (en) | Interval tree for identifying intervals that intersect with a query interval |
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 |