CN112333106A - 一种高并发场景下线上心理咨询医生资源分配方法 - Google Patents

一种高并发场景下线上心理咨询医生资源分配方法 Download PDF

Info

Publication number
CN112333106A
CN112333106A CN202011154159.0A CN202011154159A CN112333106A CN 112333106 A CN112333106 A CN 112333106A CN 202011154159 A CN202011154159 A CN 202011154159A CN 112333106 A CN112333106 A CN 112333106A
Authority
CN
China
Prior art keywords
doctor
consultation
information
redis
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011154159.0A
Other languages
English (en)
Inventor
黎文志
赵印
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Health Medical Big Data Co ltd
Original Assignee
Shandong Health Medical Big Data Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Health Medical Big Data Co ltd filed Critical Shandong Health Medical Big Data Co ltd
Priority to CN202011154159.0A priority Critical patent/CN112333106A/zh
Publication of CN112333106A publication Critical patent/CN112333106A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H10/00ICT specially adapted for the handling or processing of patient-related medical or healthcare data
    • G16H10/60ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H80/00ICT specially adapted for facilitating communication between medical practitioners or patients, e.g. for collaborative diagnosis, therapy or health monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6235Variable service order
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/801Real time traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Epidemiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Public Health (AREA)
  • Biomedical Technology (AREA)
  • Pathology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明特别涉及一种高并发场景下线上心理咨询医生资源分配方法。该高并发场景下线上心理咨询医生资源分配方法,当用户通过咨询用户端发起资讯请求后,从Redis缓存中随机获取一条医生信息,从而保证每条医生信息被取出的概率相等,从医生信息中获取医生编号及该医生的可用信道编号,使用户通过咨询用户端与该医生的可用信道建立联系即可。该高并发场景下线上心理咨询医生资源分配方法,在高并发场景下利用Redis缓存技术,高效快速分配医生资源,既能让医生拥有均等的接诊机会,也能大大缩短普通用户的排队时间,提高咨询效率,适宜推广应用。

Description

一种高并发场景下线上心理咨询医生资源分配方法
技术领域
本发明涉及高并发业务技术领域,特别涉及一种高并发场景下线上心理咨询医生资源分配方法。
背景技术
现代社会,随着工作、生活节奏越来越快,人们所面临的心理压力也越来越大。如何缓解心理压力,就成为了一个刻不容缓的问题。而心理咨询就是缓解心理压力的一个有效的方法。但是在现实生活中,受制于时间和空间上的客观因素,很多人都无法接受心理咨询服务。正是在这样的时代背景下,线上心理咨询应运而生。
线上心理咨询平台不仅能够为企业、组织、学校和个人提供心理健康预警及解决方案,还能汇聚国内外数百万名心理咨询师和心理医生、数千万名心理学爱好者,为用户在线实时提供一对一的咨询、倾诉、辅导等帮护服务。
目前,线上心理咨询平台大多以APP(应用程序,Application的缩写)的形式存在。APP通常包括客户端(Client)和服务器端。除了一些只在本地运行的应用程序之外,客户端一般安装在普通的客户机上,需要与服务器端互相配合运行。因特网发展以后,较常用的咨询用户端包括了如万维网使用的网页浏览器,收寄电子邮件时的电子邮件客户端,以及即时通讯的客户端软件等。对于这一类应用程序,需要网络中有相应的服务器和服务程序来提供相应的服务,如数据库服务,电子邮件服务等等,在客户机和服务器端建立特定的通信连接,即可实现应用程序的正常运行。
在一般的APP应用中,用户通过客户端访问服务器即可实现相关业务。但是由于心理咨询的特殊性,用户单方面对服务器的访问无法实现与心理医生的实时交流。为了实现用户与心理医生的实时交流,提高咨询效率,应用程序结构中增加了供医生登录使用的医生端,用户通过咨询用户端访问服务器端,医生端也通过网络连接到服务器端,由服务器端为咨询用户端分配心理医生,为医生端与咨询用户端建立通信连接。
咨询用户端与医生端基于WebSocket协议实现实时通信。
WebSocket是一种在单个TCP连接上进行全双工通信的协议。它使得咨询用户端和服务器之间的数据交换变得更加简单,允许服务端主动向咨询用户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
但是,在线上心理咨询应用场景下,不止是要考虑系统的高性能和可用性问题,还要避免出现有的医生一直有患者,而有的医生一直没患者的情况。由于每个心理医生都通过各自的医生端提供咨询服务,当用户通过咨询用户端发起咨询请求后,如何及时为用户分配心理医生成为关键问题。尤其在多用户同时提出咨询请求的情况下,如何在众多心理医生中为每个用户分配心理医生,既能保证用户都能迅速、高效的联系到心理医生,又能保证心理医生不会被长期闲置或同时收到多个咨询请求,避免造成心理医生与用户分配混乱的问题,如何合理分配医生通信通道成为亟待解决的问题。
为了保证APP的正常运行,在高并发服务场景下,保证系统的高性能和高可用性,本发明提出了一种高并发场景下线上心理咨询医生资源分配方法。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的高并发场景下线上心理咨询医生资源分配方法。
本发明是通过如下技术方案实现的:
一种高并发场景下线上心理咨询医生资源分配方法,其特征在于:当用户通过咨询用户端发起资讯请求后,从Redis缓存中随机获取一条医生信息,从而保证每条医生信息被取出的概率相等,从医生信息中获取医生编号及该医生的可用信道编号,使用户通过咨询用户端与该医生的可用信道建立联系即可。
当从Redis缓存中随机获取医生信息时先对医生的onlineType(状态)进行判断,然后从onlineType(状态)为ONLINE(在线)的医生中随机选取一个医生信息即可。
当从Redis缓存中随机获取医生信息时,若取出的医生的onlineType(状态)为OFFLINE(不在线),则按顺序取出下一条医生信息,直到取出的医生的onlineType(状态)为ONLINE(在线)为止。
为了保证每条医生信息被取出的概率相等,从Redis set集合中随机选取医生ID信息。
获取到医生ID信息后,根据ID信息到Redis缓存中查询对应的Redis list链表,该Redis list链表即为该医生的咨询通道集合。
与查找医生ID信息不同,查询医生的咨询通道时不是随机的,而是从Redis list链表中第一个咨询通道信息开始依次选取,若状态栏窗口指针pstatus不为0,则按顺序取出下一个咨询通道,直到找到状态栏窗口指针pstatus为0的咨询通道。
从Redis list链表中找到状态栏窗口指针pstatus为0的咨询通道后,利用该咨询通道与用户咨询用户端建立联系,并将状态栏窗口指针pstatus的值改为1,再Lpush到Redis list链表中。
用户咨询结束之后,咨询通道与用户咨询用户端之间的联系断开,并将对应咨询通道的状态栏窗口指针pstatus的值改为0,再Lpush到Redis list链表中。
本发明的有益效果是:该高并发场景下线上心理咨询医生资源分配方法,在高并发场景下利用Redis缓存技术,高效快速分配医生资源,既能让医生拥有均等的接诊机会,也能大大缩短普通用户的排队时间,提高咨询效率,适宜推广应用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图1为本发明Redis缓存中存放医生信息的set示意图。
附图2为本发明Redis缓存中存放医生信道信息的Redis列表示意图。
具体实施方式
为了使本技术领域的人员更好的理解本发明中的技术方案,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚,完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
该高并发场景下线上心理咨询医生资源分配方法,当用户通过咨询用户端发起资讯请求后,从Redis缓存中随机获取一条医生信息,从而保证每条医生信息被取出的概率相等,从医生信息中获取医生编号及该医生的可用信道编号,使用户通过咨询用户端与该医生的可用信道建立联系即可。
Redis是非关系型数据库Nosql的代表,这类数据库主要有以下特点:
非关系型的(sql语句对它不起作用,不需要建表存数据,它是直接存储),分布式(主从复制),开源的水平可扩展的。
Redis缓存技术可以处理超大量的数据,运行在便宜的PC服务器集群上,击碎了性能瓶颈,性能好,无需优化,对数据高并发读写,海量数据的高效率存储和访问,数据的高扩展性和高可用性,没有表结构,分布式简单。
Redis的操作类型,最基本类型是string,可以包含任何数据,可以说图片,也可以时序列化的对象,单个值最大上限为1Gbtye;如果只使用String类型,Redis可以看作加上持久化特性的memcache。
当从Redis缓存中随机获取医生信息时先对医生的onlineType(状态)进行判断,然后从onlineType(状态)为ONLINE(在线)的医生中随机选取一个医生信息即可。
当从Redis缓存中随机获取医生信息时,若取出的医生的onlineType(状态)为OFFLINE(不在线),则按顺序取出下一条医生信息,直到取出的医生的onlineType(状态)为ONLINE(在线)为止。
为了保证每条医生信息被取出的概率相等,从Redis set集合中随机选取医生ID信息。Redis set集合是string类型的无序集合。
获取到医生ID信息后,根据ID信息到Redis缓存中查询对应的Redis list链表,该Redis list链表即为该医生的咨询通道集合。
Redis list链表是一个双向链表,通过push,pop操作从链表的头部或者尾部添加删除元素。这使得Redis list链表既可以用作栈,也可以用作队列。
与查找医生ID信息不同,查询医生的咨询通道时不是随机的,而是从Redis list链表中第一个咨询通道信息开始依次选取,若状态栏窗口指针pstatus不为0,则按顺序取出下一个咨询通道,直到找到状态栏窗口指针pstatus为0的咨询通道。
从Redis list链表中找到状态栏窗口指针pstatus为0的咨询通道后,利用该咨询通道与用户咨询用户端建立联系,并将状态栏窗口指针pstatus的值改为1,再Lpush到Redis list链表中。
用户咨询结束之后,咨询通道与用户咨询用户端之间的联系断开,并将对应咨询通道的状态栏窗口指针pstatus的值改为0,再Lpush到Redis list链表中。
以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。

Claims (8)

1.一种高并发场景下线上心理咨询医生资源分配方法,其特征在于:当用户通过咨询用户端发起资讯请求后,从Redis缓存中随机获取一条医生信息,从而保证每条医生信息被取出的概率相等,从医生信息中获取医生编号及该医生的可用信道编号,使用户通过咨询用户端与该医生的可用信道建立联系即可。
2.根据权利要求1所述的高并发场景下线上心理咨询医生资源分配方法,其特征在于:当从Redis缓存中随机获取医生信息时先对医生的onlineType进行判断,然后从onlineType为ONLINE的医生中随机选取一个医生信息即可。
3.根据权利要求1所述的高并发场景下线上心理咨询医生资源分配方法,其特征在于:当从Redis缓存中随机获取医生信息时,若取出的医生的onlineType为OFFLINE,则按顺序取出下一条医生信息,直到取出的医生的onlineType为ONLINE为止。
4.根据权利要求2或3所述的高并发场景下线上心理咨询医生资源分配方法,其特征在于:为了保证每条医生信息被取出的概率相等,从Redis set集合中随机选取医生ID信息。
5.根据权利要求4所述的高并发场景下线上心理咨询医生资源分配方法,其特征在于:获取到医生ID信息后,根据ID信息到Redis缓存中查询对应的Redis list链表,该Redislist链表即为该医生的咨询通道集合。
6.根据权利要求5所述的高并发场景下线上心理咨询医生资源分配方法,其特征在于:与查找医生ID信息不同,查询医生的咨询通道时不是随机的,而是从Redis list链表中第一个咨询通道信息开始依次选取,若状态栏窗口指针pstatus不为0,则按顺序取出下一个咨询通道,直到找到状态栏窗口指针pstatus为0的咨询通道。
7.根据权利要求6所述的高并发场景下线上心理咨询医生资源分配方法,其特征在于:从Redis list链表中找到状态栏窗口指针pstatus为0的咨询通道后,利用该咨询通道与用户咨询用户端建立联系,并将状态栏窗口指针pstatus的值改为1,再Lpush到Redis list链表中。
8.根据权利要求7所述的高并发场景下线上心理咨询医生资源分配方法,其特征在于:用户咨询结束之后,咨询通道与用户咨询用户端之间的联系断开,并将对应咨询通道的状态栏窗口指针pstatus的值改为0,再Lpush到Redis list链表中。
CN202011154159.0A 2020-10-26 2020-10-26 一种高并发场景下线上心理咨询医生资源分配方法 Pending CN112333106A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011154159.0A CN112333106A (zh) 2020-10-26 2020-10-26 一种高并发场景下线上心理咨询医生资源分配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011154159.0A CN112333106A (zh) 2020-10-26 2020-10-26 一种高并发场景下线上心理咨询医生资源分配方法

Publications (1)

Publication Number Publication Date
CN112333106A true CN112333106A (zh) 2021-02-05

Family

ID=74311583

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011154159.0A Pending CN112333106A (zh) 2020-10-26 2020-10-26 一种高并发场景下线上心理咨询医生资源分配方法

Country Status (1)

Country Link
CN (1) CN112333106A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113822535A (zh) * 2021-08-26 2021-12-21 山东健康医疗大数据有限公司 高并发场景下资源随机分配方法、装置及计算机可读介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101924780A (zh) * 2009-06-15 2010-12-22 北京华智大为科技有限公司 一种在线客服的方法及系统
CN103684874A (zh) * 2013-12-31 2014-03-26 成都金铠甲科技有限公司 一种自动分配网上客服进行客户服务的方法和装置
CN108924256A (zh) * 2018-08-09 2018-11-30 北京中关村科金技术有限公司 一种在线客服中智能路由方法
CN109743468A (zh) * 2018-11-12 2019-05-10 贵阳朗玛信息技术股份有限公司 数据处理方法及装置
CN113076200A (zh) * 2021-06-04 2021-07-06 四川新网银行股份有限公司 一种基于多路支付通道的通道流量动态调控的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101924780A (zh) * 2009-06-15 2010-12-22 北京华智大为科技有限公司 一种在线客服的方法及系统
CN103684874A (zh) * 2013-12-31 2014-03-26 成都金铠甲科技有限公司 一种自动分配网上客服进行客户服务的方法和装置
CN108924256A (zh) * 2018-08-09 2018-11-30 北京中关村科金技术有限公司 一种在线客服中智能路由方法
CN109743468A (zh) * 2018-11-12 2019-05-10 贵阳朗玛信息技术股份有限公司 数据处理方法及装置
CN113076200A (zh) * 2021-06-04 2021-07-06 四川新网银行股份有限公司 一种基于多路支付通道的通道流量动态调控的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
朱荣鑫等: "《Go语言高并发与微服务实战》", 30 April 2020 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113822535A (zh) * 2021-08-26 2021-12-21 山东健康医疗大数据有限公司 高并发场景下资源随机分配方法、装置及计算机可读介质

Similar Documents

Publication Publication Date Title
US7966383B2 (en) Client-server systems and methods for accessing metadata information across a network using proxies
CN102411598B (zh) 一种实现数据一致性的方法及其系统
CN112769837B (zh) 基于WebSocket的通信传输方法、装置、设备、系统及存储介质
CN108712457A (zh) 基于Nginx反向代理的后端服务器动态负载调整方法及装置
JP2008033952A (ja) 共通作業キュー環境における最適格サーバ
CN109871354B (zh) 一种文件处理的方法及装置
CN109151056B (zh) 基于Canal的消息推送方法和系统
CN112527530A (zh) 消息处理方法、装置、设备、存储介质及计算机程序产品
US20060074996A1 (en) System and method for synchronizing data
JP2009151560A (ja) リソースの管理方法、情報処理システム、情報処理装置、及びプログラム
CN111984505A (zh) 一种运维数据采集引擎及采集方法
CN112333106A (zh) 一种高并发场景下线上心理咨询医生资源分配方法
CN113190517B (zh) 数据集成方法、装置、电子设备和计算机可读介质
CN107180034A (zh) MySQL数据库的集群系统
CN104967667A (zh) 一种基于云服务的软件稳定性测试远程监控系统
US20110170674A1 (en) Apparatus, a mediating method, a program thereof and a system
US20170223136A1 (en) Any Web Page Reporting and Capture
KR20140013892A (ko) 복수의 정보 시스템에서의 출력 비교 방법
CN102902593A (zh) 基于缓存机制的协议分发处理系统
CN114793244B (zh) 一种区块链的资源处理方法、装置、设备和介质
CN109302496A (zh) 一种新型实时信息流交互方法
CN110288309B (zh) 数据交互方法、装置、系统、计算机设备以及存储介质
CN110768855B (zh) 链路化性能测试的方法和装置
US10185729B2 (en) Index creation method and system
CN107330089B (zh) 跨网络结构化数据收集系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210205