[发明专利]一种基于多租户缓存反馈机制的数据采集方法在审
申请号: | 202111132213.6 | 申请日: | 2021-09-27 |
公开(公告)号: | CN113868567A | 公开(公告)日: | 2021-12-31 |
发明(设计)人: | 林宇 | 申请(专利权)人: | 中邮科通信技术股份有限公司 |
主分类号: | G06F16/957 | 分类号: | G06F16/957;G06F9/455;G06F9/54 |
代理公司: | 福州元创专利商标代理有限公司 35100 | 代理人: | 陈明鑫;蔡学俊 |
地址: | 350000 福建*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 租户 缓存 反馈 机制 数据 采集 方法 | ||
1.一种基于多租户缓存反馈机制的数据采集方法,其特征在于,用缓存替代数据库做数据交换的媒介,数据采集服务将采集到的外部实时数据经过内部处理后,以业务能识别的格式存入缓存中;
用户对实时数据的查看以打开数据查看页面为发起点,通过页面定时器的方式对后端的业务工程发起轮询,而后端的业务工程此时访问的目的地为缓存;首次访问时,缓存里没有用户需要的实时数据值,这时触发向缓存中存入数据为空的标识符,当调度工程查询缓存,发现有数据为空的标识生成后,根据标识中附带的租户参数,启动数据采集服务进行此租户下的数据采集工作;
当租户的数据采集服务被调度工程启动后,数据采集会对外部数据接口进行轮询访问,不断的对此租户下的实时数据进行采集,经过内部处理后存入缓存中,这时通过页面轮询方式对实时数据进行访问的前端页面即可从缓存里取到首批数据,后续的实时数据更新也是通过缓存进行获取;
当用户关闭数据查看页面一段时间后,缓存中的数据为空的标识会失效,调度工程查询到后,会调度关闭此租户下的数据采集服务,以动态的节约服务器计算资源。
2.根据权利要求1所述的一种基于多租户缓存反馈机制的数据采集方法,其特征在于,所述缓存采用的缓存组件为支持Key-Value形式存储的Redis。
3.根据权利要求1所述的一种基于多租户缓存反馈机制的数据采集方法,其特征在于,该方法具体实现方式如下:
S1、采集工程初始化:
采集工程的数量根据租户数量以及实时数据采集量进行灵活部署,采集工程中配置调度工程地址,用于采集工程初始化时向调度工程进行注册;同时,采集工程还提供调度接口给调度工程调用,通过调度接口,控制相应采集工程内数据采集线程的开启及关闭,以及返回采集工程的工作情况数据给调度工程用于监控展示使用;
S2、调度工程初始化:
调度工程中提供注册接口,用于增加数据采集工程时,自动注册到调度工程中,使其可被调度工程调度;
调度工程启动时从数据库中读取已经注册的采集工程到内存中,同时根据采集工程启动时的实际注册情况维护数据库中的配置信息;
S3、数据采集:
S31、当用户打开实时数据查看的页面时,页面加载过程中会以JavaScript的方式加载页面的定时器,定时器以用户要求的数据更新频率向后端的业务工程发起轮询请求,请求携带的参数包括:company_id、staff_id;
S32、业务工程端收到来自页面的请求后,首先查询Redis中是否有以company_id做为Key值的数据,如果有则直接返回该数据给数据查看页面进行解析展示,同时将名称为dataIsNull+company_id的Key的过期时间重置为T1;如果在Redis中未查询到以company_id做为Key值的数据,则以dataIsNull+company_id做为Key值,company_id为Value值,存入Redis缓存中,同时,设置该Key的过期时间为T1;
S33、调度工程将以频率T2查询Redis,获取Key的关键字为dataIsNull*的数据列表,同时与其内存中保存的dataIsNull列表做比对找出数据差异;
S34、调度工程将从Redis取回的dataIsNull反馈值与其内存中的dataIsNull值进行比对后,如果发现新取回的dataIsNull值有增加,则通过其内存中维护的采集工程地址、线程数的信息,根据分配算法,选择一个采集工程来运行新的数据采集需求,当选中一个采集工程时,通过此采集工程提供的调度接口来控制采集工程内部开启采集线程,从而向外部接口不断的轮询以获取当前租户下最新的实时数据;调度工程调用采集工程提供的调度接口成功后,更新内部相应的采集工程实时数据,更新的数据包括:当前采集工程已用线程数、租户线程信息;如果发现取回的dataIsNull值有减少,即Redis中dataIsNull+company_id的Key值已过期,即表明用户已关闭或退出数据查看页面,使得页面对于Redis的轮询中断,相应Key的过期值无法维护,继而此租户在Redis中的反馈值消失;此时,调度工程通过采集工程提供的调度接口,控制采集工程关闭当前租户的数据采集线程以节约服务器计算资源,调度接口调用成功后,调度工程会更新内部相应的采集工程实时数据,更新的数据包括:当前采集工程已用线程数、租户线程信息;
S35、通过步骤S34的调度以后,相应的数据采集线程将启动或关闭,启动的采集线程将不断的轮询外部接口以获取实时数据,经过其内部处理后,采集线程将把处理后的数据存入步骤S31中对应company_id的Key值下以供客户端页面获取后进行实时动态展示。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中邮科通信技术股份有限公司,未经中邮科通信技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111132213.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种逆变离线放电装置
- 下一篇:电子设备壳体及笔记本电脑