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

技术编号:28978371 阅读:19 留言:0更新日期:2021-06-23 09:24
本发明专利技术公开了一种基于会话池的分布式多用户高可用的人行报告采集方法,包括:创建人行用户数据库;基于缓存创建会话池,根据用户查询权限、是否具有有效性和用户特性,将会话池分为多个hash,在每个hash中,键为用户编码,值为用户会话信息;按照第一预设周期,执行登录巡检,对处于无效hash中的用户再次执行登录操作;当业务端发起人行报告查询请求时,提取查询请求中包含的业务类型和用户权限,路由到与业务类型和用户权限对应的有效用户hash的用户会话信息,执行查询返回操作。本发明专利技术能够有效处理多用户多服务按业务采集人行报告的问题,大大提升了查询效率。

【技术实现步骤摘要】
基于会话池的分布式多用户高可用的人行报告采集方法
本专利技术涉及人行网络访问
,具体而言涉及一种基于会话池的分布式多用户高可用的人行报告采集方法。
技术介绍
在人行报告的采集中,目前多采用单用户操作的方式,对于采集任务量大并发量需求高的应用场景,通常会设置多台服务器同时进行查询,但由于需要考虑业务场景对应的查询需求、用户查询权限、每个用户的操作量、失效用户维护和到期用户密码修改等问题,并发查询效率低下。因此,亟需提出一种新的多用户高可用的人行报告采集方法,能够自动对用户进行维护,并且能够根据业务的场景去随机选择符合要求的用户进行人行报告的采集。
技术实现思路
本专利技术针对现有技术中的不足,提供一种基于会话池的分布式多用户高可用的人行报告采集方法,能够有效处理多用户多服务按业务采集人行报告的问题,大大提升了查询效率。为实现上述目的,本专利技术采用以下技术方案:一种基于会话池的分布式多用户高可用的人行报告采集方法,所述方法包括以下步骤: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,查询数据库获取用户信息后再次登录人行操作,根据登录的结果再放入有效或无效的队列。定时任务二(执行频率一个月一次):将所有用户登录后调用修改密码接口,按照人行的密码规则随机生成,修改密码成功后更新数据库,重新登录后将登录信息更新缓存。任务二做每个月的定时密码修改任务,直接从数据库获取所有的用户,依次模拟用户操作人行的登录和修改密码等操作,修改密码成功后将新密码更新数据库,重新登录成功后将会话信息放入有效队列,失败放入失败队列(失败的等待定时任务一继续处本文档来自技高网
...

【技术保护点】
1.一种基于会话池的分布式多用户高可用的人行报告采集方法,其特征在于,所述方法包括以下步骤:/nS1,创建人行用户数据库,所述人行用户数据库中存储有一定量人行用户的用户编码、用户查询权限、用户特性和用户会话信息;/nS2,基于缓存创建会话池,根据用户查询权限、是否具有有效性和用户特性,将会话池分为多个hash,在每个hash中,键为用户编码,值为用户会话信息;/nS3,按照第一预设周期,执行登录巡检:判断会话池中是否有会话信息,如果没有,执行初始化操作,从人行用户数据库中获取所有人行用户信息,依次调用人行登录接口对所有人行用户执行登录操作,根据用户查询权限、登录结果和用户特性,将对应的用户会话信息放入不同的hash中,否则,获取所有无效的用户hash,查询人行用户数据库获取用户相关信息后再次执行登录操作,根据登录结果更新对应的用户hash;/n当业务端发起人行报告查询请求时,提取查询请求中包含的业务类型和用户权限,路由到与业务类型和用户权限对应的有效用户hash的用户会话信息,执行查询返回操作。/n

【技术特征摘要】
20201110 CN 20201124513031.一种基于会话池的分布式多用户高可用的人行报告采集方法,其特征在于,所述方法包括以下步骤:
S1,创建人行用户数据库,所述人行用户数据库中存储有一定量人行用户的用户编码、用户查询权限、用户特性和用户会话信息;
S2,基于缓存创建会话池,根据用户查询权限、是否具有有效性和用户特性,将会话池分为多个hash,在每个hash中,键为用户编码,值为用户会话信息;
S3,按照第一预设周期,执行登录巡检:判断会话池中是否有会话信息,如果没有,执行初始化操作,从人行用户数据库中获取所有人行用户信息,依次调用人行登录接口对所有人行用户执行登录操作,根据用户查询权限、登录结果和用户特性,将对应的用户会话信息放入不同的hash中,否则,获取所有无效的用户hash,查询人行用户数据库获取用户相关信息后再次执行登录操作,根据登录结果更新对应的用户hash;
当业务端发起人行报告查询请求时,提取查询请求中包含的业务类型和用户权限,路由到与业务类型和用户权限对应的有效用户hash的用户会话信息,执行查询返回操作。


2.根据权利要求1所述的基于会话池的分布式多用户高可用的人行报告采集方法,其特征在于,所述第一预设周期的取值范围为1-10分...

【专利技术属性】
技术研发人员:蒋诗洋王仁杰
申请(专利权)人:苏宁消费金融有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1