一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种预约挂号方法与流程

2022-03-09 06:44:19 来源:中国专利 TAG:


1.本发明涉及一种防黄牛方法,具体是一种预约挂号方法。


背景技术:

2.黄牛党俗称“票贩子”,活跃在各个行业。如商城,其利用商城返利,赠券,购物卡,代金券,代购积分等牟取利益,严重影响商城正常促销效益;如火车票,其利用节假期间火车票的供不应求囤积然后高价卖出,严重影响正常购票出现需要。而在医疗挂号领域,因为更加复杂的挂号渠道,极度不平衡的医疗需求,导致部分大医院及专家号源供不应求,为黄牛党的活跃存在创造了条件。特别是越来越多的号源从线下渠道放到线上,为我们提供更便捷的挂号服务之外也为黄牛的蔓延提供了更加适宜的条件。这些线上黄牛往往通过破解软件,批量注册等待手段大量收集号源然后卖给急需就医用户从中谋取暴利。
3.预约挂号防黄牛要实现例如:单一用户在第一人民医院呼吸科近30天内预约挂号不能超过20次这样的规则,原有的技术会直接去业务数据库中查询用户最近三十天的数据,然后统计该用户近三十天内呼吸科的次数,直接通过业务数据库查询,因为预约数据量大,时间跨度长,访问频次高,多次频繁查询患者预约记录,会影响预约挂号其它功能使用且无法实时响应查询。
4.因此,本领域技术人员提供了一种预约挂号方法,以解决上述背景技术中提出的问题。


技术实现要素:

5.本发明的目的在于提供一种预约挂号方法,通过canal监听binlog以此保证获取数据的实时性并只读取日志不查询数据库以此降低对业务数据库的影响,极大降低了影响线上业务的风险,以解决上述背景技术中提出的问题。
6.为实现上述目的,本发明提供如下技术方案:
7.一种预约挂号方法,应用于挂号系统,所述挂号系统包括web模块、配置库模块、sparkstreaming模块、业务线模块、mysql模块、kafka模块、hbase 模块、redis模块,所述方法包括以下步骤:
8.步骤一:通过web模块向配置库模块导入黑名单规则;
9.黑名单规则为设定一个预约次数预设值,用户在规定时间内预约次数超过预设值则将该用户加入黑名单,反之不加入;
10.步骤二:配置库模块配置黑名单规则;
11.根据导入的黑名单规则,对其进行配置存储;
12.步骤三:用户通过业务线模块在线进行预约业务,预约数据被传输给 mysql模块;
13.步骤四:通过canal实时解析mysql模块产生的binlog日志,解析后的数据以json的格式发至kafka模块;
14.步骤五:通过sparkstreaming模块进行消费kafka模块内数据;
15.消费数据时会先从配置库中读取到防黄牛具体规则,再以“用户id_机构 id_科室id_医生id_预约日期”作为rowkey,先将rowkey作为键,数字1作为值写入hbase模块,再根据rowkey 预约时间查询hbase模块,取出近30 天数据判断是否满足黑名单规则,触发黑名单规则会将rowkey写入redis模块的防黄牛黑名单内,不满足黑名单规则就删除一次redis模块中对应的 rowkey,确保当前规则该用户不在防黄牛黑名单内,业务线模块在接收到每一条预约请求时先查询redis模块中的防黄牛黑名单,如果在防黄牛黑名单内直接提示用户无法再次预约,如果不在则写入mysql模块进而产生新的 binlog日志重复上述的流程。
16.通过canal监听binlog以此保证获取数据的实时性并只读取日志不查询数据库以此降低对业务数据库的影响,极大降低了影响线上业务的风险。
17.作为本发明进一步的方案:在所述步骤三中,若用户被拉入防黄牛黑名单内并提示无法再次预约时,可进行紧急申请,填写完整的申请信息并提供担保后即可取消该用户在redis模块中的防黄牛黑名单。
18.该设置给与黄牛用户一个补救的机会,避免黄牛用户自身突发疾病时无法得到治疗。
19.作为本发明再进一步的方案:所述申请信息包括用户姓名、身份证号码、居住地址、联系方式、之前多次预约的原因或不再恶意预约保证书、担保金,其中,担保金可通过扫码支付。
20.该设置避免黄牛用户利用紧急申请再次进行恶意挂号,防止医疗资源的浪费。
21.作为本发明再进一步的方案:所述担保金预存在第三方机构中,若进行紧急申请的用户在预约时间内是本人就诊则返还担保金,若不是本人则扣除该担保金。
22.担保金的存在能够促进黄牛用户进行守信活动。
23.作为本发明再进一步的方案:在所述步骤三中,对于预约挂号业务中数据状态的更新,如预约成功、预约失败、支付失败、取消预约的状态,当用户在医院预约当天是首次预约时,rowkey的初始值是1,检测到数据中status 状态是失败状态,对应数值-1,用户再次预约数值再 1,以此记录用户在医院科室医生下面的预约数量,相应对rredis模块中防黄牛黑名单的rowkey 进行增加和删除操作,满足黑名单规则时,业务线模块不会将数据写入mysql 模块,sparkstreaming模块也将不会收到相应数据数值也不会加减。
24.作为本发明再进一步的方案:当黑名单规则变更时,原有的防黄牛黑名单用户依旧在内,可能会与黑名单规则不符,在检测到相应机构黑名单规则发生变更时,基于预约挂号的时效性需从hbase模块中取出该机构近30日内数据,以canal发到kafka模块相同的json格式发到kafka模块,其中加入模拟发送标识以此区分是业务数据还是模拟数据,sparkstreaming模块统一消费kafka模块内数据,当检测到外部发送标识数据中的用户再次进行黑名单规则的查询计算,并更新redis模块中的防黄牛黑名单,但数据不写入hbase 模块,因为是模拟数据只为触发再次计算。
25.一种预约挂号系统,所述挂号系统包括web模块、配置库模块、 sparkstreaming模块、业务线模块、mysql模块、kafka模块、hbase模块、 redis模块;
26.所述web模块与配置库模块连接,用于向配置库模块导入黑名单规则;
27.所述配置库模块与sparkstreaming模块连接,用于接收web模块传来的黑名单规则,并对黑名单规则进行配置供sparkstreaming模块提取;
28.所述业务线模块与mysql模块连接,用于在线进行预约业务,预约数据被传输给mysql模块;
29.所述mysql模块与kafka模块连接,用于通过canal实时解析binlog日志,解析后的数据以json的格式发至kafka模块;
30.所述kafka模块与sparkstreaming模块连接,用于接收mysql模块传来的数据,供sparkstreaming模块提取;
31.所述sparkstreaming模块与hbase模块、redis模块连接,用于消费kafka 模块内数据;
32.消费数据时会先从配置库中读取到防黄牛具体规则,再以“用户id_机构 id_科室id_医生id_预约日期”作为rowkey,先将rowkey作为键,数字1作为值写入hbase模块,再根据rowkey 预约时间查询hbase模块,取出近30 天数据判断是否满足黑名单规则,触发黑名单规则会将rowkey写入redis模块的防黄牛黑名单内,不满足黑名单规则就删除一次redis模块中对应的 rowkey,确保当前规则该用户不在防黄牛黑名单内,业务线模块在接收到每一条预约请求时先查询redis模块中的防黄牛黑名单,如果在防黄牛黑名单内直接提示用户无法再次预约,如果不在则写入mysql模块进而产生新的 binlog日志重复上述的流程。
33.通过canal监听binlog以此保证获取数据的实时性并只读取日志不查询数据库以此降低对业务数据库的影响,极大降低了影响线上业务的风险。
34.作为本发明再进一步的方案:该预约挂号系统还包括紧急申请模块,所述紧急申请模块与redis模块连接,若用户被拉入防黄牛黑名单内并提示无法再次预约时,可通过紧急申请模块进行紧急申请,填写完整的申请信息并提供担保后即可取消该用户在redis模块中的防黄牛黑名单。
35.通过设置的紧急申请模块给与黄牛用户一个补救的机会,避免黄牛用户自身突发疾病时无法得到治疗。
36.与现有技术相比,本发明的有益效果是:
37.1、通过canal监听binlog以此保证获取数据的实时性并只读取日志不查询数据库以此降低对业务数据库的影响,极大降低了影响线上业务的风险。
38.2、以大数据平台分布式处理能力和组合rowkey形式达到海量数据处理、高并发快速响应时间跨度查询的效果。
39.3、以异步预处理方式进行防黄牛计算,当用户首次预约时挂号系统会根据规则计算出是否加入黑名单列表,而不用下次预约时再同步计算,从而达到了及时响应与预计算的效果。
附图说明
40.图1为一种预约挂号方法的流程框图。
具体实施方式
41.请参阅图1,本发明实施例中,一种预约挂号方法,应用于挂号系统,所述挂号系统包括web模块、配置库模块、sparkstreaming模块、业务线模块、 mysql模块、kafka模块、hbase模块、redis模块,所述方法包括以下步骤:
42.步骤一:通过web模块向配置库模块导入黑名单规则;
43.黑名单规则为设定一个预约次数预设值,用户在规定时间内预约次数超过预设值则将该用户加入黑名单,反之不加入;
44.步骤二:配置库模块配置黑名单规则;
45.根据导入的黑名单规则,对其进行配置存储;
46.步骤三:用户通过业务线模块在线进行预约业务,预约数据被传输给 mysql模块;
47.步骤四:通过canal实时解析mysql模块产生的binlog日志,解析后的数据以json的格式发至kafka模块;
48.步骤五:通过sparkstreaming模块进行消费kafka模块内数据;
49.消费数据时会先从配置库中读取到防黄牛具体规则,再以“用户id_机构 id_科室id_医生id_预约日期”作为rowkey,先将rowkey作为键,数字1作为值写入hbase模块,再根据rowkey 预约时间查询hbase模块,取出近30 天数据判断是否满足黑名单规则,触发黑名单规则会将rowkey写入redis模块的防黄牛黑名单内,不满足黑名单规则就删除一次redis模块中对应的 rowkey,确保当前规则该用户不在防黄牛黑名单内,业务线模块在接收到每一条预约请求时先查询redis模块中的防黄牛黑名单,如果在防黄牛黑名单内直接提示用户无法再次预约,如果不在则写入mysql模块进而产生新的 binlog日志重复上述的流程。
50.通过canal监听binlog以此保证获取数据的实时性并只读取日志不查询数据库以此降低对业务数据库的影响,极大降低了影响线上业务的风险。
51.在本实施例中:在所述步骤三中,若用户被拉入防黄牛黑名单内并提示无法再次预约时,可进行紧急申请,填写完整的申请信息并提供担保后即可取消该用户在redis模块中的防黄牛黑名单。该设置给与黄牛用户一个补救的机会,避免黄牛用户自身突发疾病时无法得到治疗。
52.在本实施例中:所述申请信息包括用户姓名、身份证号码、居住地址、联系方式、之前多次预约的原因或不再恶意预约保证书、担保金,其中,担保金可通过扫码支付。该设置避免黄牛用户利用紧急申请再次进行恶意挂号,防止医疗资源的浪费。
53.在本实施例中:所述担保金预存在第三方机构中,若进行紧急申请的用户在预约时间内是本人就诊则返还担保金,若不是本人则扣除该担保金。担保金的存在能够促进黄牛用户进行守信活动。
54.在本实施例中:在所述步骤三中,对于预约挂号业务中数据状态的更新,如预约成功、预约失败、支付失败、取消预约的状态,当用户在医院预约当天是首次预约时,rowkey的初始值是1,检测到数据中status状态是失败状态,对应数值-1,用户再次预约数值再 1,以此记录用户在医院科室医生下面的预约数量,相应对rredis模块中防黄牛黑名单的rowkey进行增加和删除操作,满足黑名单规则时,业务线模块不会将数据写入mysql模块, sparkstreaming模块也将不会收到相应数据数值也不会加减。
55.在本实施例中:当黑名单规则变更时,原有的防黄牛黑名单用户依旧在内,可能会与黑名单规则不符,在检测到相应机构黑名单规则发生变更时,基于预约挂号的时效性需从hbase模块中取出该机构近30日内数据,以canal 发到kafka模块相同的json格式发到kafka模块,其中加入模拟发送标识以此区分是业务数据还是模拟数据,sparkstreaming模块统一消费kafka模块内数据,当检测到外部发送标识数据中的用户再次进行黑名单规则
的查询计算,并更新redis模块中的防黄牛黑名单,但数据不写入hbase模块,因为是模拟数据只为触发再次计算。
56.一种预约挂号系统,所述挂号系统包括web模块、配置库模块、 sparkstreaming模块、业务线模块、mysql模块、kafka模块、hbase模块、 redis模块;
57.所述web模块与配置库模块连接,用于向配置库模块导入黑名单规则;
58.所述配置库模块与sparkstreaming模块连接,用于接收web模块传来的黑名单规则,并对黑名单规则进行配置供sparkstreaming模块提取;
59.所述业务线模块与mysql模块连接,用于在线进行预约业务,预约数据被传输给mysql模块;
60.所述mysql模块与kafka模块连接,用于通过canal实时解析binlog日志,解析后的数据以json的格式发至kafka模块;
61.所述kafka模块与sparkstreaming模块连接,用于接收mysql模块传来的数据,供sparkstreaming模块提取;
62.所述sparkstreaming模块与hbase模块、redis模块连接,用于消费kafka 模块内数据;
63.消费数据时会先从配置库中读取到防黄牛具体规则,再以“用户id_机构 id_科室id_医生id_预约日期”作为rowkey,先将rowkey作为键,数字1作为值写入hbase模块,再根据rowkey 预约时间查询hbase模块,取出近30 天数据判断是否满足黑名单规则,触发黑名单规则会将rowkey写入redis模块的防黄牛黑名单内,不满足黑名单规则就删除一次redis模块中对应的 rowkey,确保当前规则该用户不在防黄牛黑名单内,业务线模块在接收到每一条预约请求时先查询redis模块中的防黄牛黑名单,如果在防黄牛黑名单内直接提示用户无法再次预约,如果不在则写入mysql模块进而产生新的 binlog日志重复上述的流程。
64.通过canal监听binlog以此保证获取数据的实时性并只读取日志不查询数据库以此降低对业务数据库的影响,极大降低了影响线上业务的风险。
65.在本实施例中:该预约挂号系统还包括紧急申请模块,所述紧急申请模块与redis模块连接,若用户被拉入防黄牛黑名单内并提示无法再次预约时,可通过紧急申请模块进行紧急申请,填写完整的申请信息并提供担保后即可取消该用户在redis模块中的防黄牛黑名单。
66.通过设置的紧急申请模块给与黄牛用户一个补救的机会,避免黄牛用户自身突发疾病时无法得到治疗。
67.本发明通过canal监听binlog以此保证获取数据的实时性并只读取日志不查询数据库以此降低对业务数据库的影响,极大降低了影响线上业务的风险。以大数据平台分布式处理能力和组合rowkey形式达到海量数据处理、高并发快速响应时间跨度查询的效果。以异步预处理方式进行防黄牛计算,当用户首次预约时挂号系统会根据规则计算出是否加入黑名单列表,而不用下次预约时再同步计算,从而达到了及时响应与预计算的效果。
68.以上所述的,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献