业务实时推送方法、系统、电子设备及存储介质与流程

文档序号:23729604发布日期:2021-01-26 19:52阅读:131来源:国知局
业务实时推送方法、系统、电子设备及存储介质与流程

[0001]
本发明属于数据监控领域,尤其涉及一种基于db监控的业务实时推送方法、系统、设备及存储介质。


背景技术:

[0002]
目前,互联网行业迅速发展。企业为了能够进一步处理信息流转以及提高效率,也需要往这个方向努力,不然,只是互联网和智能终端在发展,肯定是会出现问题的。现在的移动办公,对于信息化程度较高的企业已经是必备了,不然处理问题的能力就会大大降低。自然,移动办公中待办的消息、内容的变更、用户动态信息变更需要做到实时、精准与拓展,不让用户错过任何有价值的消息,这有利于提高企业自身的应对能力,也是提高竞争力的一个关键因素。
[0003]
传统技术获取信息的方式只是简单的查询数据库或者更新客户端。数据库(db)是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。通过这种方式待办消息不能实时推送,变更的消息不能做到对比,并且不能实时获取用户的动态信息。


技术实现要素:

[0004]
本申请实施例提供了一种基于db监控的业务实时推送方法,以至少解决相关技术中主观因素影响的问题。
[0005]
为了达到上述目的,本发明采用的技术方案为:
[0006]
提出了一种基于db监控的业务实时推送方法,所述方法包括以下步骤:
[0007]
拦截步骤:设置切面aop拦截用户的业务动作;
[0008]
保存步骤:定义对比方法记录业务系统的变化,通过所述切面aop的拦截,保存到数据库中;
[0009]
推送步骤:定义实时推送方法抓取所述数据库内容推送给客户端。
[0010]
作为本发明的进一步改进,所述拦截步骤具体包括以下步骤:
[0011]
横切步骤:将定义好的所述切面aop横切到所述业务系统中;
[0012]
添加步骤:在需要拦截的所述业务动作上添加所述切面aop。
[0013]
作为本发明的进一步改进,所述实时推送方法为socket实时推送方法。
[0014]
作为本发明的进一步改进,在所述拦截步骤之前还包括将消息、动态、参与者进行实体绑定。
[0015]
基于相同发明思想,本发明还基于任一项发明创造所揭示的基于db监控的业务实时推送方法,揭示了一种基于db监控的业务实时推送系统,
[0016]
所述基于db监控的业务实时推送系统包括:
[0017]
拦截模块,设置切面aop拦截用户的业务动作;
[0018]
保存模块,定义对比方法记录业务系统的变化,通过所述切面aop的拦截,保存到
数据库中;
[0019]
推送模块,定义实时推送方法抓取所述数据库内容推送给客户端。
[0020]
作为本发明的进一步改进,所述拦截模块包括:
[0021]
横切单元,将定义好的所述切面aop横切到所述业务系统中;
[0022]
添加单元,在需要拦截的所述业务动作上添加所述切面aop。
[0023]
作为本发明的进一步改进,所述推送模块中实时推送方法为socket实时推送方法。
[0024]
作为本发明的进一步改进,还包括绑定模块,将消息、动态、参与者进行实体绑定。
[0025]
此外,为实现上述目的,本发明还提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如上述中任一项所述的基于db监控的业务实时推送方法。
[0026]
此外,为实现上述目的,本发明还提供一种存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如上述中任一项所述的基于db监控的业务实时推送方法。
[0027]
与现有技术相比,本发明的优点和积极效果在于:
[0028]
1、提出了一种基于db监控的业务实时推送方法,提高消息的实时性,能实时获取业务系统变更内容的不同以及用户的动态消息;
[0029]
2、针对信息精准推送管理,能够精准推送消息;
[0030]
3、无需改变原有业务逻辑,只需嵌入该方法,使用方便。
附图说明
[0031]
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0032]
图1是本发明实施例提供的一种基于db监控的业务实时推送方法整体流程图;
[0033]
图2是本发明实施例提供的一种基于db监控的业务实时推送方法整体架构图;
[0034]
图3是本发明实施例提供的实体绑定示意图;
[0035]
图4是图1所揭示的步骤s1整体流程图;
[0036]
图5是本发明实施例提供的设置切面aop示意图;
[0037]
图6是本发明实施例提供的socket同步数据流程图;
[0038]
图7是本实施例提供的一种基于db监控的业务实时推送系统结构框架图;
[0039]
图8是根据本发明实施例的计算机设备的框架图。
[0040]
以上各图中:
[0041]
100、拦截模块;200、保存模块;300、推送模块;400、绑定模块;101、横切单元;102、保存单元;80、总线;81、处理器;82、存储器;83、通信接口。
具体实施方式
[0042]
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0043]
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
[0044]
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
[0045]
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
[0046]
下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。
[0047]
在详细阐述本发明各个实施例之前,对本发明的核心发明思想予以概述,并通过下述若干实施例予以详细阐述。
[0048]
本发明可基于数据库实现业务实时推送,有效提高消息的实时性。
[0049]
实施例一:
[0050]
参照图1至图6所示,本实例揭示了一种基于db监控的业务实时推送方法(以下简称“方法”)的具体实施方式。
[0051]
具体而言参照图1和图2所示,本实施例所揭示的方法主要包括以下步骤:
[0052]
步骤s1、设置切面aop拦截用户的业务动作。
[0053]
具体而言,在其中一些实施例中,如图3所示在所述步骤s1之前还包括将消息、动态、参与者进行实体绑定。
[0054]
具体而言,在其中一些实施例中,参照图4和图5所示,步骤s1具体包括以下步骤:
[0055]
s11、将定义好的所述切面aop横切到所述业务系统中;
[0056]
s12、在需要拦截的所述业务动作上添加所述切面aop。
[0057]
其中,在软件业,aop为aspect oriented programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。aop是oop的延续,是软件开发中的一个热点,也是spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用aop可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。aop是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。
[0058]
具体而言,aop(aspect-oriented programming,面向切面的编程),它是可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。它是一种新的方法论,它是对传统oop编程的一种补充。oop是关注将需求功能划分为不同的并且相对独立,封装良好的类,并让它们有着属于自己的行为,依靠继承和多态等来定义彼此的关系;aop是希望能够将通用需求功能从不相关的类当中分离出来,能够使得很多类共享一个行为,一旦发生变化,不必修改很多类,而只需要修改这个行为即可。aop是使用切面(aspect)将横切关注点模块化,oop是使用类将状态和行为模块化。在oop的世界中,程序都是通过类和接口组织的,使用它们实现程序的核心业务逻辑是十分合适。但是对于实现横切关注点(跨越应用程序多个模块的功能需求)则十分吃力,比如日志记录,权限验证,异常拦截等。
[0059]
具体而言,aop就是将公用功能提取出来,如果以后公用功能的需求发生变化,只需要改动公用的模块的代码即可,多个调用的地方则不需要改动。所谓面向切面,就是只关注通用功能,而不关注业务逻辑。实现方式一般是通过拦截。比如,我们随便一个web项目基本都有的权限验证功能,进入每个页面前都会校验当前登录用户是否有权限查看该界面,不可能说在每个页面的初始化方法里面都去写这段验证的代码,这个时候aop就派上用场了,aop的机制是预先定义一组特性,使它具有拦截方法的功能,可以让用户在执行方法之前和之后做想做的业务,而使用的时候只需要的对应的方法或者类定义上面加上某一个特性就好了。
[0060]
然后执行步骤s2、定义对比方法记录业务系统的变化,通过所述切面aop的拦截,保存到数据库中,其中,在本实施例中保存到消息和参与者中。
[0061]
具体而言,数据库(db)是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。当今世界是一个充满着数据的互联网世界,充斥着大量的数据。即这个互联网世界就是数据世界。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。
[0062]
然后执行步骤s3、定义实时推送方法抓取所述数据库内容推送给客户端。
[0063]
具体而言,所述实时推送方法为socket实时推送方法。socket是html5开始提供的一种在单个tcp连接上进行全双工通讯的协议。能更好的节省服务器资源和带宽,并且能够更实时地进行通讯,使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据,即允许服务端主动向客户端推送数据,定义soket实时推送方法,客户端会收到实时推送的消息。
[0064]
socket是在应用层和传输层之间的一个抽象层,它把tcp/ip层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。如图6所示为socket同步数据流程图,socket是一种"打开—读/写—关闭"模式的实现,服务器和客户端各自维护一个"文件",在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。
[0065]
具体而言,要通过互联网进行通信,至少需要一对socket,其中一个运行于客户端,我们称之为client socket,另一个运行于服务器端,我们称之为server socket。根据连接启动的方式以及本地套接字要连接的目标,socket之间的连接过程可以分为三个步骤:服务器监听,是指服务器端套接(socket)字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态;客户端请求,是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端接字提出连接请求;连接确认,是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,就会响应客户端套接字的请求,建立一个新的线程,并把服务器端套接字的描述发送给客户端。一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,接收其他客户端套接字的连接请求。
[0066]
具体而言,所述推送客户端包括企业微信、业务系统。其中企业微信是腾讯微信团队打造的企业通讯与办公工具,具有与微信一致的沟通体验,丰富的oa应用,和连接微信生态的能力,可帮助企业连接内部、连接生态伙伴、连接消费者。专业协作、安全管理、人即服务。目前企业微信已覆盖零售、教育、金融、制造业、互联网、医疗等50多个行业,正持续向各行各业输出智慧解决方案。企业微信能很好解决了工作群体人员关于生活工作混淆的烦恼,优化了工作沟通模式,方便了企业的管理,给企业人员带来了较大的好处。
[0067]
具体而言,企业微信功能有对外名片—扫码即可添加外部联系人,用专业的形象对外沟通;支持多种沟通方式—与微信一致的沟通体验,包括语音、图片、表情、邮件、公费电话等;多人音视频会议—通话中支持文档和电话接入,远程会议更加方便;支持多种工作邮箱接入,实时收取邮件通知,及时处理工作邮件,方便高效;设置特色办公功能—聊天窗口可快捷创建待办,高效地管理工作;回执消息—查看消息已读未读成员,掌握消息触达情况;专属红包—指定成员才能领红包,员工激励的好帮手;休息一下—下班了,开启休息一下。模式,消息免打扰;图片标注—支持添加箭头、文字等标注,问题描述更清晰。
[0068]
具体而言,企业微信中用户具有唯一标识。用户唯一标识是区分用户的重要手段。如何区分某个用户就是他这个用户,而不是另一个用户,在数据埋点中是一个非常重要的事情。因为如果做不到用户的唯一识别,那凡是涉及到用户的数据都将是错的(比如用户量、新增用户数、活跃用户数等等)。用户唯一标识,是用户唯一的身份id,相同的身份id,就会被当做是相同的一个用户。用户id,即用户在业务产品注册的用户账号。企业微信中,可以以userid作为企业内部用户的标识,首次手动设置账号以后,则不允许修改,若是企业微信系统自动生成的,则只允许修改一次。所以userid最多只能修改一次。
[0069]
通过本申请实施例所揭示的一种基于db监控的业务实时推送方法能够提高消息的实时性,能实时获取业务系统变更内容的不同以及用户的动态消息,针对信息精准推送管理,能够精准推送消息,无需改变原有业务逻辑,只需嵌入该方法,使用方便。
[0070]
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
[0071]
实施例二:
[0072]
结合实施例一所揭示的一种基于db监控的业务实时推送方法,本实施例揭示了一种基于db监控的业务实时推送系统(以下简称“系统”)的具体实施示例。
[0073]
参照图7所示,所述系统包括:
[0074]
拦截模块100,设置切面aop拦截用户的业务动作;
[0075]
保存模块200,定义对比方法记录业务系统的变化,通过所述切面aop的拦截,保存到数据库中;
[0076]
推送模块300,定义实时推送方法抓取所述数据库内容推送给客户端。
[0077]
在其中一些实施例中,所述拦截模块100包括:
[0078]
横切单元101,将定义好的所述切面aop横切到所述业务系统中;
[0079]
添加单元102,在需要拦截的所述业务动作上添加所述切面aop。
[0080]
在其中一些实施例中,所述推送模块300中实时推送方法为socket实时推送方法。
[0081]
在其中一些实施例中,所述系统还包括绑定模块400,将消息、动态、参与者进行实体绑定。
[0082]
本实施例所揭示的一种基于db监控的业务实时推送系统与实施例一所揭示的一种基于db监控的业务实时推送方法中其余相同部分的技术方案,请参考实施例一所述,在此不再赘述。
[0083]
实施例三:
[0084]
结合图8所示,本实施例揭示了一种计算机设备的一种具体实施方式。计算机设备可以包括处理器81以及存储有计算机程序指令的存储器82。
[0085]
具体地,上述处理器81可以包括中央处理器(cpu),或者特定集成电路(application specific integrated circuit,简称为asic),或者可以被配置成实施本申请实施例的一个或多个集成电路。
[0086]
其中,存储器82可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器82可包括硬盘驱动器(hard disk drive,简称为hdd)、软盘驱动器、固态驱动器(solid state drive,简称为ssd)、闪存、光盘、磁光盘、磁带或通用串行总线(universal serial bus,简称为usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器82可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器82可在数据处理装置的内部或外部。在特定实施例中,存储器82是非易失性(non-volatile)存储器。在特定实施例中,存储器82包括只读存储器(read-only memory,简称为rom)和随机存取存储器(random access memory,简称为ram)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(programmable read-only memory,简称为prom)、可擦除prom(erasable programmable read-only memory,简称为eprom)、电可擦除prom(electrically erasable programmable read-only memory,简称为eeprom)、电可改写rom(electrically alterable read-only memory,简称为earom)或闪存(flash)或者两个或更多个以上这些的组合。在合适的情况下,该ram可以是静态随机存取存储器(static random-access memory,简称为sram)或动态随机存取存储器(dynamic random access memory,简称为dram),其中,dram可以是快速
页模式动态随机存取存储器(fast page mode dynamic random access memory,简称为fpmdram)、扩展数据输出动态随机存取存储器(extended date out dynamic random access memory,简称为edodram)、同步动态随机存取内存(synchronous dynamic random-access memory,简称sdram)等。
[0087]
存储器82可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器81所执行的可能的计算机程序指令。
[0088]
处理器81通过读取并执行存储器82中存储的计算机程序指令,以实现上述实施例中的任意一种基于db的业务实时推送方法。
[0089]
在其中一些实施例中,计算机设备还可包括通信接口83和总线80。其中,如图8所示,处理器81、存储器82、通信接口83通过总线80连接并完成相互间的通信。
[0090]
通信接口83用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信端口83还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
[0091]
总线80包括硬件、软件或两者,将计算机设备的部件彼此耦接在一起。总线80包括但不限于以下至少之一:数据总线(data bus)、地址总线(address bus)、控制总线(control bus)、扩展总线(expansion bus)、局部总线(local bus)。举例来说而非限制,总线80可包括图形加速接口(accelerated graphics port,简称为agp)或其他图形总线、增强工业标准架构(extended industry standard architecture,简称为eisa)总线、前端总线(front side bus,简称为fsb)、超传输(hyper transport,简称为ht)互连、工业标准架构(industry standard architecture,简称为isa)总线、无线带宽(infini band)互连、低引脚数(low pin count,简称为lpc)总线、存储器总线、微信道架构(micro channel architecture,简称为mca)总线、外围组件互连(peripheral component interconnect,简称为pci)总线、pci-express(pci-x)总线、串行高级技术附件(serial advanced technology attachment,简称为sata)总线、视频电子标准协会局部(video electronics standards association local bus,简称为vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线80可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
[0092]
该计算机设备可以基于db对业务动作变化进行实时推送,有效提高消息实时性,从而实现结合图1描述的方法。
[0093]
另外,结合上述实施例中基于db的业务实时推送方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种基于db的业务实时推送方法。
[0094]
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0095]
综上所述,基于本发明的有益效果在于,揭示了的一种基于db的业务实时推送方法能够提高消息的实时性,能实时获取业务系统变更内容的不同以及用户的动态消息,针对信息精准推送管理,能够精准推送消息,无需改变原有业务逻辑,只需嵌入该方法,使用方便。
[0096]
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1