掌桥专利:专业的专利平台
掌桥专利
首页

基于会话池的分布式多用户高可用的人行报告采集方法

文献发布时间:2023-06-19 11:32:36


基于会话池的分布式多用户高可用的人行报告采集方法

技术领域

本发明涉及人行网络访问技术领域,具体而言涉及一种基于会话池的分布式多用户高可用的人行报告采集方法。

背景技术

在人行报告的采集中,目前多采用单用户操作的方式,对于采集任务量大并发量需求高的应用场景,通常会设置多台服务器同时进行查询,但由于需要考虑业务场景对应的查询需求、用户查询权限、每个用户的操作量、失效用户维护和到期用户密码修改等问题,并发查询效率低下。

因此,亟需提出一种新的多用户高可用的人行报告采集方法,能够自动对用户进行维护,并且能够根据业务的场景去随机选择符合要求的用户进行人行报告的采集。

发明内容

本发明针对现有技术中的不足,提供一种基于会话池的分布式多用户高可用的人行报告采集方法,能够有效处理多用户多服务按业务采集人行报告的问题,大大提升了查询效率。

为实现上述目的,本发明采用以下技术方案:

一种基于会话池的分布式多用户高可用的人行报告采集方法,所述方法包括以下步骤:

S1,创建人行用户数据库,所述人行用户数据库中存储有一定量人行用户的用户编码、用户查询权限、用户特性和用户会话信息;

S2,基于缓存创建会话池,根据用户查询权限、是否具有有效性和用户特性,将会话池分为多个hash,在每个hash中,键为用户编码,值为用户会话信息;

S3,按照第一预设周期,执行登录巡检:判断会话池中是否有会话信息,如果没有,执行初始化操作,从人行用户数据库中获取所有人行用户信息,依次调用人行登录接口对所有人行用户执行登录操作,根据用户查询权限、登录结果和用户特性,将对应的用户会话信息放入不同的hash中,否则,获取所有无效的用户hash,查询人行用户数据库获取用户相关信息后再次执行登录操作,根据登录结果更新对应的用户hash;

当业务端发起人行报告查询请求时,提取查询请求中包含的业务类型和用户权限,路由到与业务类型和用户权限对应的有效用户hash的用户会话信息,执行查询返回操作。

为优化上述技术方案,采取的具体措施还包括:

进一步地,所述第一预设周期的取值范围为1-10分钟。

进一步地,所述方法还包括以下步骤:

S4,按照第二预设周期,将所有用户登录后调用修改密码接口,按照人行的密码规则随机生成新的密码并进行密码修改,修改密码成功后更新人行用户数据库,在用户重新登录时将会话信息放入对应的hash中。

进一步地,所述第二预设周期为1个月。

进一步地,步骤S4中,如果有人行用户修改密码后登录失败,根据用户查询权限和用户特性将该用户信息放入对应的无效的用户hash中,等待下一次登录巡检。

进一步地,当业务端发起人行报告查询请求时,如果查询失败,判断失败原因,如果失败原因为用户登录失效,将该用户从有效的用户hash转入无效的用户hash,等待下一次登录巡检,否则,将其标记为业务失败。

进一步地,步骤S3中,所述用户特性包括贷前业务和贷后业务。

本发明的有益效果是:

(1)采用两个定时任务和redis缓存,一个定时任务负责用户会话巡检,确保用户在人行系统中状态的维持,发现失效后,重新登录将会话放入缓存,一个定时任务负责密码的修改,周期进行一次批量的密码修改后更新缓存,从而保证多用户的有效性。

(2)对redis缓存进行细分,当业务发起查询人行报告操作时,根据用户的查询原因随机分配用户,实现对多场景多业务的需求。

(3)本发明有效的处理了多用户多服务按业务采集人行报告的问题,大大提升了查询效率。

附图说明

图1是本发明的基于会话池的分布式多用户高可用的人行报告采集方法流程图。

图2是实施例实现多用户多业务维持的原理示意图。

具体实施方式

现在结合附图对本发明作进一步详细的说明。

需要注意的是,发明中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。

结合图1,本发明提及一种基于会话池的分布式多用户高可用的人行报告采集方法,所述方法包括以下步骤:

S1,创建人行用户数据库,所述人行用户数据库中存储有一定量人行用户的用户编码、用户查询权限、用户特性和用户会话信息。

S2,基于缓存创建会话池,根据用户查询权限、是否具有有效性和用户特性,将会话池分为多个hash,在每个hash中,键为用户编码,值为用户会话信息。

S3,按照第一预设周期,执行登录巡检:判断会话池中是否有会话信息,如果没有,执行初始化操作,从人行用户数据库中获取所有人行用户信息,依次调用人行登录接口对所有人行用户执行登录操作,根据用户查询权限、登录结果和用户特性,将对应的用户会话信息放入不同的hash中,否则,获取所有无效的用户hash,查询人行用户数据库获取用户相关信息后再次执行登录操作,根据登录结果更新对应的用户hash。

当业务端发起人行报告查询请求时,提取查询请求中包含的业务类型和用户权限,路由到与业务类型和用户权限对应的有效用户hash的用户会话信息,执行查询返回操作。

优选的,所述用户特性取决于查询业务需求,例如,包括贷前业务和贷后业务等,或者信用卡业务和储蓄卡业务等,在一个会话池中,可以设置很多个用户hash,用于细分用户特性,以对应不同的业务场景需求。下面仅以贷前业务和贷后业务为例对本发明进行说明,应当理解,在实际应用中,用户特性不局限于该例子。

假设缓存的数据结构为hash结构,按用户查询权限和用户的有效性(是否处于有效登录状态),分为多个hash,每个hash里面键为用户编码,值为用户会话信息。例:有效的贷前用户、无效的贷前用户、有效的贷后用户、无效的贷后用户。

结合图2,在本发明中,涉及两个定时任务,定时任务的实现方案不限,本实施例采用quartz组件实现。

定时任务一(执行频率在几分钟一次):将人行用户全部登录操作后,将会话信息更新到缓存中,key为用户编码,值为会话信息和用户信息。

定时任务一会先判断缓存是否有会话信息,如果全没有,则进行初始化,初始化操作如下:查询数据库获取所有人行用户,依次调用人行登录的接口,成功后,如果是贷前用户放入有效的贷前用户,如果是贷后用户放入有效的贷后用户,登录失败则分别放入无效的贷前用户和无效的贷后用户。如果缓存中已有会话信息,则获取无效的用户hash,查询数据库获取用户信息后再次登录人行操作,根据登录的结果再放入有效或无效的队列。

定时任务二(执行频率一个月一次):将所有用户登录后调用修改密码接口,按照人行的密码规则随机生成,修改密码成功后更新数据库,重新登录后将登录信息更新缓存。

任务二做每个月的定时密码修改任务,直接从数据库获取所有的用户,依次模拟用户操作人行的登录和修改密码等操作,修改密码成功后将新密码更新数据库,重新登录成功后将会话信息放入有效队列,失败放入失败队列(失败的等待定时任务一继续处理)。

在业务端发起查询人行报告时,根据业务是贷前查询还是贷后查询,路由到不同的用户会话信息,进行查询。

当业务前来查询用户人行报告时,根据查询的业务从有效的用户池中随机获取用户进行查询操作。如果是用户失效的原因操作失败,则将该用户从有效的用户队列放入无效的用户队列,等待定时任务一的巡检。其他原因失败则算正常的业务失败,会话池的用户正常维护。

以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

相关技术
  • 基于会话池的分布式多用户高可用的人行报告采集方法
  • 一种基于多用户的语音采集方法、装置
技术分类

06120112965934