本发明属于通信,尤其是涉及一种基于spring容器实现长连接管道的系统及方法。
背景技术:
1、目前,大部分网站都是基于分布式集群来进行服务器部署的,用户通过注册账户登录前端页面,将自己的数据录入后传输至服务器,服务器会将数据持久到数据库。但是,用户数据可能涉及隐私信息,如果存储到其他服务器,容易造成泄露,增大用户安全风险。
2、并且在技术层面讲,目前使用基于http协议的通信,即短链接,当某个节点执行完成需要推送时,都需要进行建立连接和释放连接的操作,这个过程会耗费网络资源及时间。
技术实现思路
1、有鉴于此,本发明旨在克服现有技术中上述问题的不足之处,提出一种基于spring容器实现长连接管道的系统及方法。
2、为达到上述目的,本发明的技术方案是这样实现的:
3、一种基于spring容器实现长连接管道的系统,包括:
4、流程新增或更新模块,用于在流程新增或更新时保存流程信息,并使用短连接将流程信息推送给短连接数据接收模块;
5、短连接数据接收模块,用于判断流程状态,并根据流程状态决定是否驱动节点执行模块;
6、节点执行模块,用于进行长连接数据推送;
7、长连接数据接收模块,用于接收节点执行模块的推送数据,并根据流程信息选择调用节点执行模块,或根据流程状态决定是否关闭长连接管理。
8、本申请还提供了一种基于spring容器实现长连接管道的方法,包括以下步骤:
9、s1.通过流程新增或更新模块在流程新增或更新时保存流程信息,并通过短连接推送流程信息给其他接收方;
10、s2.通过短连接数据接收模块接收短连接推送来的流程信息,并根据流程状态决定是否驱动节点执行模块;
11、s3.通过节点执行模块进行长连接数据推送;
12、s4.通过长连接数据接收模块接收节点执行模块的推送的长连接数据,并判断流程是否继续执行,如果流程继续执行,则驱动节点执行模块,在流程状态不变更的情况下,静默执行整个流程;如果流程不继续执行,则根据流程状态决来决定是否需要保存当前数据或是否需要关闭长连接管道。
13、进一步的,步骤s2中,短连接数据接收模块的操作过程为:
14、s21.保存流程信息;
15、s22.判断流程状态是否为开始状态,如果流程状态为开始状态,则驱动节点执行模块,结束当前短连接数据接收模块业务;如果状态为暂停或终止状态,则直接结束当前短连接数据接收模块业务。
16、进一步的,步骤s3中节点执行模块的操作过程为:
17、s31.判断当前节点能否执行,如果不满足执行条件,则保存数据,结束当前节点执行模块业务;如果满足执行条件,则执行业务处理,获得计算结果,进入步骤s32;
18、s32.判断计算结果是否需要推送,如果需要进行数据推送,则拼接ip+port+流程id形成bean,从spring容器中获取长连接管道,并进入步骤s33;如果不需要进行数据推送,则判断是否存在下一个节点,如果存在,则重新开始执行步骤s31,如果不存在,则结束流程;
19、s33.利用获得的长连接管道进行数据推送。
20、进一步的,步骤s32中,拼接ip+port+流程id,从spring容器中获取长连接管道时,如果长连接管道不存在,则先根据ip和port启动长连接客户端并阻塞,然后获取长连接管道,将长连接管道注册到spring容器中。
21、进一步的,步骤s32中,不存在下一个节点时,流程执行过程为:
22、s321.变更流程状态为结束状态;
23、s322.使用短连接进行数据推送,此时会驱动短连接数据接收模块,控制其他参与方关闭长连接管道,彻底结束此次的流程计算;
24、s323.关闭长连接通道,并注销bean,结束当前节点执行模块业务。
25、进一步的,步骤s4中,根据流程状态决来决定是否需要保存当前数据或是否需要关闭长连接管道的具体过程为:
26、s41.如果流程状态为暂停,则保留当前数据,结束当前长连接数据接收模块业务;
27、如果流程状态为非暂停,则关闭长连接,并注销bean,结束当前长连接数据接收模块业务。
28、相对于现有技术,本发明具有以下优势:
29、本发明所述的一种基于spring容器实现长连接管道的系统及方法使用长连接管道在流程请求方和接收方等多个服务节点之间进行数据交互并完成流程计算;系统设计包含流程新增或更新、短连接数据接收、节点执行、长连接数据接收等四个模块,通过节点执行和长连接数据接收两个模块完成流程计算,通过流程新增或更新和短连接数据接收两个模块来控制流程是否开始或终止;通过长短连接相互结合,实现了用户实时控制流程进度的目的,合理利用了服务器资源;同时也避免了用户数据的泄露。
1.一种基于spring容器实现长连接管道的系统,其特征在于,包括:
2.一种基于spring容器实现长连接管道的方法,基于权利要求1所述的一种基于spring容器实现长连接管道的系统实现,其特征在于,包括以下步骤:
3.根据权利要求2所述的一种基于spring容器实现长连接管道的方法,其特征在于,步骤s2中,短连接数据接收模块的操作过程为:
4.根据权利要求2所述的一种基于spring容器实现长连接管道的方法,其特征在于,步骤s3中节点执行模块的操作过程为:
5.根据权利要求4所述的一种基于spring容器实现长连接管道的方法,其特征在于:步骤s32中,拼接ip+port+流程id,从spring容器中获取长连接管道时,如果长连接管道不存在,则先根据ip和port启动长连接客户端并阻塞,然后获取长连接管道,将长连接管道注册到spring容器中。
6.根据权利要求4所述的一种基于spring容器实现长连接管道的方法,其特征在于,步骤s32中,不存在下一个节点时,流程执行过程为:
7.根据权利要求4所述的一种基于spring容器实现长连接管道的方法,其特征在于,步骤s4中,根据流程状态决来决定是否需要保存当前数据或是否需要关闭长连接管道的具体过程为: