CN115242578A - Vpn连接管理方法、装置、计算机设备及存储介质 - Google Patents

Vpn连接管理方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN115242578A
CN115242578A CN202210907786.XA CN202210907786A CN115242578A CN 115242578 A CN115242578 A CN 115242578A CN 202210907786 A CN202210907786 A CN 202210907786A CN 115242578 A CN115242578 A CN 115242578A
Authority
CN
China
Prior art keywords
vpn
thread
sub
target
connection management
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
CN202210907786.XA
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.)
China Merchants Finance Technology Co Ltd
Original Assignee
China Merchants Finance Technology 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 China Merchants Finance Technology Co Ltd filed Critical China Merchants Finance Technology Co Ltd
Priority to CN202210907786.XA priority Critical patent/CN115242578A/zh
Publication of CN115242578A publication Critical patent/CN115242578A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及网络通讯技术领域,本发明公开了一种VPN连接管理方法、装置、计算机设备及存储介质。该方法通过获取用户输入的目标操作请求,根据目标操作请求中的VPN标识,以判断本地缓存是否存在与VPN标识相对应的VPN实例,若本地缓存中存在VPN实例,调用VPN实例对应的VPN子线程运行,以利用VPN子线程在应用进行相应的操作;再通过消息通信机制与VPN子线程进行通信,接收VPN子线程返回的与目标请求信息相关的目标结果信息,以得到对VPN连接进行操作的反馈信息,从而完成在保证应用流畅性的情况下,对VPN进行相应的管理操作。

Description

VPN连接管理方法、装置、计算机设备及存储介质
技术领域
本发明涉及网络通讯技术领域,尤其涉及一种VPN连接管理方法、装置、计算机设备及存储介质。
背景技术
虚拟专用网络(Virtual Private Network,VPN)属于远程访问技术,通过在公共网络中建立专用的数据通信的网络技术,为企业之间或者个人与企业之间提供安全的数据传输隧道服务,但VPN需要通过相应的VPN SDK工具以管理VPN的连接。
基于JavaScript所开发的应用在进行VPN管理时,只能通过基于JavaScript开发的VPN工具对VPN进行管理。现有技术中,由于JavaScript引擎只能单线程地处理JavaScript的js代码,即所有任务都需要排队,前一个任务结束,才会执行后续的任务。为了利用多核CPU的计算能力,HTML5新加了Web Worker,允许js主线程去创建子线程,但子线程完全受主线程控制,而且不能操作DOM,JavaScript引擎仍然为单线程。所以在基于JavaScript所开发的应用,利用VPN工具对VPN进行操作时,例如同步操作,应用会出现卡顿的情况,从而导致在对VPN进行管理时,应用的稳定性和流畅性较差。
发明内容
本发明实施例提供一种VPN连接管理方法、装置、计算机设备及存储介质,解决现有基于JavaScript所开发的应用,在对VPN进行管理时,存在应用的流畅性较差的问题。
本发明实施例提供了一种VPN连接管理方法,包括:
获取用户输入的目标操作请求,所述目标操作请求包括VPN标识和目标请求信息;
根据所述VPN标识,判断本地缓存是否存在与所述VPN标识相对应的VPN实例;
若所述本地缓存中存在所述VPN实例,调用所述VPN实例对应的VPN子线程运行;
通过消息通信机制与VPN子线程进行通信,接收所述VPN子线程返回的与所述目标请求信息相关的目标结果信息。
本发明实施例还提供了一种VPN连接管理装置,包括:
目标操作请求获取模块,用于获取用户输入的目标操作请求,所述目标操作请求包括VPN标识和目标请求信息;
VPN实例检测模块,用于根据所述VPN标识,判断本地缓存是否存在与所述VPN标识相对应的VPN实例;
VPN子线程调用模块,用于若所述本地缓存中存在所述VPN实例,调用所述VPN实例对应的VPN子线程运行;
目标结果信息接收模块,用于通过消息通信机制与VPN子线程进行通信,接收所述VPN子线程返回的与所述目标请求信息相关的目标结果信息。
本发明实施例还提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实现VPN连接管理方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述实现VPN连接管理方法。
上述的VPN连接管理方法、装置、计算机设备及存储介质,通过获取用户输入的目标操作请求,根据目标操作请求中的VPN标识,以判断本地缓存是否存在与VPN标识相对应的VPN实例,若本地缓存中存在VPN实例,调用VPN实例对应的VPN子线程运行,以利用VPN子线程在应用进行相应的操作;再通过消息通信机制与VPN子线程进行通信,接收VPN子线程返回的与目标请求信息相关的目标结果信息,以得到对VPN连接进行操作的反馈信息,从而完成在保证应用流畅性的情况下,对VPN进行相应的管理操作。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中VPN连接管理方法的一应用环境示意图;
图2是本发明一实施例中VPN连接管理方法的一流程图;
图3是本发明一实施例中VPN连接管理方法的另一流程图;
图4是本发明一实施例中VPN连接管理方法的另一流程图;
图5是本发明另一实施例中VPN连接管理方法的一流程图;
图6是本发明另一实施例中VPN连接管理方法的一流程图;
图7是本发明另一实施例中VPN连接管理方法的一流程图;
图8是本发明一实施例中VPN连接管理装置的一示意图;
图9是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的VPN连接管理方法,可应用在如图1示出的应用环境中。如图1所示,客户端(计算机设备)通过网络与服务器进行通信。其中,客户端又称为用户端,是指与服务器相对应,为客户提供本地服务的程序,客户端(计算机设备)包括但不限于为各种个人计算机、笔记本电脑、智能手机、平板电脑、摄像头和便携式可穿戴设备。服务器可以用独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
本发明实施例提供的VPN连接管理方法,该VPN连接管理方法可应用如图1所示的应用环境中。具体地,该VPN连接管理方法应用在VPN连接管理***中,该VPN连接管理***包括如图1所示的客户端和服务器,客户端与服务器通过网络进行通信,用于实现对客户端的VPN工具进行管理,以实现对VPN连接的管理,从而提高客户端运行的流畅性。
在一实施例中,如图2所示,提供一种VPN连接管理方法,以该方法应用在图1中的服务器或客户端为例进行说明,包括服务器或客户端对应的js主线程执行的如下步骤:
S201:获取用户输入的目标操作请求,目标操作请求包括VPN标识和目标请求信息;
S202:根据VPN标识,判断本地缓存是否存在与VPN标识相对应的VPN实例;
S203:若本地缓存中存在VPN实例,调用VPN实例对应的VPN子线程运行;
S204:通过消息通信机制与VPN子线程进行通信,接收VPN子线程返回的与目标请求信息相关的目标结果信息。
其中,JavaScript(简称为js),是一种具有函数优先的轻量级,解释型或即时编译型的编程语言,通过开发Web页面的脚本语言而出名,同时也应用到很多非浏览器环境中,JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式和函数式编程范式。
其中,线程是进程内的一个独立执行单元,用于应用程序必须运行在某个进程的某个线程上,而当js基于浏览器进行运行时,js的主要用途是与用户互动以及操作DOM,从而导致js的引擎只能进行单线程运行,否则会带来很复杂的同步问题。而单线程的特点,使得JavaScript和UI渲染占用同一个主线程,那就意味着JavaScript无法同时处理多个任务,而且JavaScript在进行高负载的数据处理时,UI渲染就很有可能被阻断,浏览器就会出现卡顿,降低了用户体验。
由于Node.js具有多线程(worker_threads)的功能,从而使得JavaScript程序存在运行在主线程之外的至少一个子线程,在主线程运行的同时,子线程在后台运行,两者互不干扰,等到子线程完成计算任务,再把结果返回给主线程,以保证主线程继续UI渲染的状态,进而提高应用的流畅性。
作为一示例,步骤S201中,js主线程可接收到用户输入的目标操作请求,基于包括VPN标识和目标请求信息的目标操作请求,对VPN连接执行相应的操作,以完成用户对VPN连接进行及时的管理。在本实例中,用户可以根据需求,输入相应的命令或对界面的按钮进行操作,从而触发目标操作请求,将该目标操作请求发送至js主线程。
在本实例中,VPN标识是用于唯一识别某一VPN实例的标识,可以为VPN实例对应的实例地址,还可以VPN实例对应的实例名称。目标请求信息包括任务标识,常见任务标识包括网络节点同步任务对应的任务标识和连接节点变更任务对应的任务标识等,任务标识用于js主线程从任务标识对应的任务池中,调用VPN实例对应的VPN子线程运行。其中,任务池基于线程池存在,根据任务池所对应的任务项目规划线程池,并制定相应的任务线程数量和超时等参数,通过线程池解决了由于任务线程的创建或销毁的操作多发下,所导致***或应用卡顿的问题。
作为一示例,步骤S202中,js主线程根据所接收目标操作请求中的VPN标识,对本地缓存进行检测,从而确定本地缓存是否存在与VPN标识相对应的VPN实例,并根据VPN实例的状态做出相应的操作。在本示例中,VPN连接基于C语言开发的VPN SDK进行网络连接,C语言开发的VPN SDK也即VPN实例,该VPN实例通过js主线程对应的VPN子线程运行,以保证VPN连接能够常驻运行,即作为后台常驻线程运行。
其中,VPN SDK根据不同的网络厂家,可能会有多个VPN SDK存在,以用于连接不同的网络。
作为一示例,步骤S203中,js主线程在对本地缓存是否存在VPN实例进行判断后,若本地缓存中存在VPN实例,调用VPN实例对应的VPN子线程运行。
在本示例中,js主线程通过VPN实例,对VPN子线程实例进行启动,其中,VPN实例根据VPN子线程对应的入口文件路径进行处理获得。
作为一示例,步骤S204中,js主线程在调用VPN子进程运行后,通过消息通信机制与VPN子线程进行通信,并接收VPN子线程返回的与目标请求信息相关的目标结果信息,以确定用户输入目标请求信息所反馈对应的执行结果。在本示例中,VPN子线程在运行后,根据实际的业务需求,去建立对应的网络连接,从而为***提供对应的网络服务。
在本示例中,消息通信机制为Node.js环境下,基于TCP封装的多线程通信模块,用于是安装Node.js之后自带的模块。其中,Node.js是一个基于ChromeV8引擎的JavaScript运行环境,是一个JavaScript运行在服务端的开发平台。
在本示例中,VPN子线程基于Node.js的消息通信机制,即多线程通信模块,用于且消息通信机制采用异步通信,以提高资源利用效率。由于进程资源隔离性强,而线程资源隔离性弱,通过利用线程和进程之间转换机制,设置js主线程和VPN子线程的组合,以提高VPN连接管理的稳定性。
在本示例中,通过获取用户输入的目标操作请求,根据目标操作请求中的VPN标识,以判断本地缓存是否存在与VPN标识相对应的VPN实例,若本地缓存中存在VPN实例,调用VPN实例对应的VPN子线程运行,以利用VPN子线程在应用进行相应的操作;再通过消息通信机制与VPN子线程进行通信,接收VPN子线程返回的与目标请求信息相关的目标结果信息,以得到对VPN连接进行操作的反馈信息,在保证应用流畅性的情况下,对VPN进行相应的管理操作。
在一实施例中,如图3所示,步骤S203,若本地缓存中存在VPN实例,调用VPN实例对应的VPN子线程运行,包括:
S301:若本地缓存中存在VPN实例,对VPN实例对应的VPN子线程进行状态检测;
S302:若VPN子线程为正常状态,调用VPN子线程运行;
S303:若VPN子线程为异常状态,根据预设时间,对VPN子线程进行重新启动。
作为一示例,步骤S301中,js主线程在确认本地缓存中存在VPN实例后,对VPN实例对应的VPN子线程进行状态检测,以确认VPN子线程是否存在异常,从而根据VPN子线程的状态,进行后续操作,以保证VPN子线程运行的稳定性。其中,VPN子线程的异常状态包括入口错误、代码错误和运行崩溃等异常情况;VPN子线程的正常状态,即为VPN子线程不存在异常情况。
作为一示例,步骤S302中,当js主线程所确认的VPN子线程的状态为正常状态时,直接将VPN子线程调用,使VPN子线程能够正常运行起来。
作为一示例,步骤S303中,js主线程所确认的VPN子线程的状态为异常状态时,识别VPN子线程的异常状态的异常信息,该异常信息还可用于反馈给用户,以便于用户做出相应的对策。同时,根据预设时间进行VPN子线程的恢复,当等待时间达到预设时间后,重新启动VPN子线程,以避免在异常时仍频繁调用,保证VPN子线程运行的稳定性。
在本示例中,当VPN子线程的状态为异常状态,通过初始化机制对VPN子线程进行进程恢复,该初始化机制通过监听VPN子线程的错误事件(error)和退出事件(exit),来检测线程的异常状态,从而进行延迟重启,以恢复VPN子进程。
在本示例中,在调用VPN实例对应的VPN子线程运行前,通过对本地缓存中VPN实例对应的VPN子线程进行状态检测,当VPN子线程为正常状态时,直接调用VPN子线程运行;VPN子线程为异常状态时,提示异常信息,并在预设时间后重新启动VPN子线程,以保证VPN子线程运行的稳定性。
在一实施例中,如图4所示,步骤S204,通过消息通信机制与VPN子线程进行通信,接收VPN子线程返回的与目标请求信息相关的目标结果信息,包括:
S401:根据目标请求信息,获取第一消息,将第一消息发送给VPN子线程,第一消息包括请求号、方法名和请求参数;
S402:接收VPN子线程对第一消息进行处理所返回的第二消息,其中,VPN子线程对第一消息进行解析处理包括:根据方法名和请求参数,获取方法执行结果,根据请求号和方法执行结果,获取第二消息;
S403:对第二消息进行处理,获取目标请求信息对应的目标结果信息。
其中,在Node.js环境下,消息通信机制为多线程通信,会设置动态代理(Proxy),基于Node.js环境,由于代理角色线程(Thread类)不需要自行创建,只需要确定对应的目标,即本示例中的VPN子线程或js主线程,通过动态代理进行对应的转发,以确认对应的连接,建立统一通信机制。
作为一示例,步骤S401中,js主线程在通过消息通信机制与VPN子线程进行通信后,根据用户所输入的目标请求信息,生成包括请求号、方法名和请求参数的第一消息,从而发送给VPN子线程。
本示例中,js主线程调用VPN子线程执行某功能时,需要生成唯一请求号、方法名和请求参数组成的第一消息,作为对应的请求信息,以通过对动态代理(Proxy)转发给对应的VPN子线程。
作为一示例,步骤S402中,js主线程在发送第一消息后,接收VPN子线程对第一消息进行处理所返回的第二消息。VPN子线程在接收到js主线程发送的第一消息后,VPN子线程对第一消息进行处理,其处理过程,先根据自身内置的事件对方法名和请求参数进行处理,获取方法执行结果;然后把请求号和方法执行结果组成第二消息传递回主线程。
在本实例中,若js主线程需要VPN子线程执行VPNInvoker.method1(arg1,arg2)时,其中,方法名为method1,请求参数为(arg1,arg2),根据所生成的请求号发送至动态代理(Proxy),动态代理(Proxy)在确认目标VPN子线程后,对PNInvoker.method1(arg1,arg2)转发至VPN子线程,以处理对应的method1(arg1,arg2)进行相应的VPN网络连接,并获取方法执行结果;并将方法执行结果和请求号作为第二消息发送至js主线程,。
作为一示例,步骤S403中,js主线程在接收到VPN子线程所反馈的第二消息后,对第二消息进行解析处理,确定VPN子线程对目标请求信息进行执行的目标结果信息,以反馈给用户。
在本实例中,js主线程通过将所述目标请求信息,生成对用的请求号、方法名和请求参数的第一消息,以将所述第一消息通过动态代理,发送给VPN子线程,;VPN子线程对第一消息进行处理所返回的第二消息,从而获取VPN子线程对目标请求信息进行处理的目标结果信息,以及时反馈给用户,从而保持主线程的其他任务进行时,不会干扰到VPN子线程的运行,从而保证应用的流畅性。
在另一实施例中,如图5所示,在步骤S201,获取用户输入的目标操作请求之前,VPN连接管理方法还包括:
S501:获取VPN子线程对应的入口文件路径;
S502:根据入口文件路径进行实例化,获取VPN实例;
S503:将VPN实例进行缓存到本地缓存中,以使VPN实例对应的VPN子线程作为后台常驻线程运行。
其中,实例化是通过一个抽象类申请分配内存空间,根据类构造所申请空间的大小规格,在内存中实际产生一个类所对应的实例,可以向里面存放定义的数据和进行方法的调用。
作为一示例,步骤S501中,js主线程在对VPN子线程进行初始设置时,先获取VPN子线程所对应的入口文件的入口文件路径,进行实例化,以调用对应的VPN子线程。
在另一示例中,VPN子线程通过设置一个入口文件,管理VPN连接中的多个SDK,以用于后续VPN功能的控制。将该入口文件的入口文件路径发送至js主线程,从而使得js主线程根据入口文件路径建立对应的VPN实例,用于调用VPN子线程。
本示例中,基于InvokableThread(可调用线程)抽象类,作为对应的入口函数,并将用于VPN连接继承该入口函数,得到VPNThread.js作为入口文件。其中,InvokableThread用于实现JavaScript的子线程功能,入口函数为VPN子线程中所使用多个函数的入口点,即通过该入口函数启动对应的其他函数;入口函数所对应的文件则为入口文件。
作为一示例,步骤S502中,js主线程在获取到入口文件对应的入口文件路径后,根据入口文件路径进行实例化,使得VPN子线程可以运行。
在本示例中,js主线程基于WorkerInvoker(工作线程调用)类进行worker_threads(工作线程)的初始化、异常重启、回收、与线程的通信管理等,即若需要调用VPN子线程时,获取入口文件的VPNThread.js路径来实例化,从而在后续调用,只需要执行invoker.connect(arg1,arg2),invoker,就会使VPN子线程,控制动态代理调用VPNThread.connect(arg1,arg2)。
作为一示例,步骤S503中,js主线程在获取到VPN子线程对应的VPN实例后,将VPN实例进行缓存到本地缓存中,以使VPN子线程作为后台常驻线程运行,可流畅通过VPN实例调用对应的VPN子线程。
在本实例中,js主线程通过采用入口函数,获取VPN子线程对应的入口文件,将VPN子线程对应的入口文件路径,根据入口文件对应的入口文件路径进行实例化,以获取VPN实例,从而将VPN实例进行缓存到本地缓存中,以使VPN实例对应的VPN子线程作为后台常驻线程运行,从而保持VPN的连接稳定性。
在另一实施例中,如图6所示,在步骤S204,通过消息通信机制与VPN子线程进行通信,接收VPN子线程返回的与目标请求信息相关的目标结果信息之后,VPN连接管理方法还包括:
S601:对VPN子线程进行状态监听,获取VPN子线程的空闲状态时长;
S602:若空闲状态时长大于预设时长阈值,对VPN子线程进行关闭操作,使得VPN子线程进入后台运行状态。
作为一示例,步骤S601中,js主线程在调用VPN子线程运行后,保持对VPN子线程进行状态监听,监听VPN子线程的当前状态为空闲状态的持续时长,以确认VPN子线程的空闲状态时长。
作为一示例,步骤S602中,js主线程在确认VPN子线程的空闲状态时长后,对VPN子线程的空闲状态时长进行判断,若空闲状态时长大于预设时长阈值,对VPN子线程进行关闭操作,使得VPN子线程进入后台运行状态,从而减少VPN子线程的所占内存,提高应用的运行速度。其中,后台运行状态则是将VPN子线程进行保持,通过保留必要的进程,从而减少VPN子线程所占内存。与后台常驻不同的是,VPN子线程进入后台后,状态会根据实际的业务需求进行改变,如被终止或调出,只有将后台运行状态进行常驻保持,才能使得VPN子线程始终保持后台运行状态,不会被终止掉,从而提高VPN子线程运行的稳定性。
在本示例中,通过保持对VPN子线程进行状态监听,确认VPN子线程的空闲状态时长,从而对VPN子线程的空闲状态时长进行判断,对空闲状态时长大于预设时长阈值,对VPN子线程进行关闭操作,降低VPN子线程的所占内存,提高应用的运行速度。
在另一实施例中,如图7所示,在步骤S204,通过消息通信机制与VPN子线程进行通信,接收VPN子线程返回的与目标请求信息相关的目标结果信息之后,VPN连接管理方法还包括:
S701:对同一任务标识的每一VPN子线程进行状态监听,获取线程状态汇总,线程状态汇总包括空闲线程数量和运行线程数量;
S702:根据空闲线程数量和运行线程数量,对同一任务标识对应的每一VPN子线程进行管控。
作为一示例,步骤S701中,js主线程在调用VPN子线程运行后,对同一任务标识所对应的每一VPN子线程进行状态监听,并将监听到的空闲线程数量和运行线程数量进行汇总,获得用于资源调控的线程状态汇总。空闲线程数量是反映同一任务标识对应的VPN子线程中处于空闲状态的数量。运行线程数量是反映同一任务标识对应的VPN子线程中处于运行状态的数量。
作为一示例,步骤S702中,js主线程在获取到线程状态汇总后,基于线程状态汇总中空闲线程数量和运行线程数量,对同一任务标识对应的所有VPN子线程进行管控。其中,管控方式包括,当所占用内存较小时,维持同一任务标识的每一VPN子线程;当所占用内存较大时,根据业务需求,关闭部分VPN子线程。
在本示例中,js主线程通过对同一任务标识的每一VPN子线程进行状态监听,以获取包括空闲线程数量和运行线程数量的线程状态汇总,从而根据空闲线程数量和运行线程数量,对同一任务标识对应的每一VPN子线程进行管控,以调控***的内存资源,提高js主线程的稳定性。
在一实施例中,在步骤S702,根据空闲线程数量和运行线程数量,对同一任务标识对应的每一VPN子线程进行管控,包括:
S7021:若空闲线程数量大于运行线程数量,根据线程状态汇总,获取目标线程数量,销毁目标线程数量对应的VPN子线程;
S7022:若空闲线程数量不大于运行线程数量,则维持同一任务标识的每一VPN子线程的当前状态。
作为一示例,步骤S7021中,js主线程根据所检测到的空闲线程数量和运行线程数量进行对比,当空闲线程数量大于运行线程数量时,根据空闲线程数量和运行线程数量,确定业务需求所对应的目标线程数量,用于销毁与目标线程数量相对应的VPN子线程,以节省内存资源。此处的目标线程数量为需要销毁的处于空闲状态的VPN子线程的数量。
本示例中,js主线程获取当前时刻对应的占用内存,在当前时刻对应的占用内存大于预设阈值时,需将检测到的空闲线程数量和运行线程数量进行对比,当空闲线程数量大于运行线程数量时,根据空闲线程数量和运行线程数量,确定目标线程数量,以销毁与目标线程数量相对应的VPN子线程,以节省内存资源。
作为一示例,步骤S7022中,js主线程根据所检测到的空闲线程数量和运行线程数量进行对比,当空闲线程数量不大于运行线程数量时,则维持同一任务标识的每一VPN子线程的当前状态。
在本示例中,通过对空闲线程数量是否大于运行线程数量进行判断,当空闲线程数量大于运行线程数量,根据线程状态汇总所对应的目标线程数量,销毁目标线程数量对应的VPN子线程,以减少内存资源的占用,提高js主线程的稳定性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种VPN连接管理装置,该VPN连接管理装置与上述实施例中VPN连接管理方法一一对应。如图8所示,该VPN连接管理装置包括目标操作请求获取模块801、VPN实例检测模块802、VPN子线程调用模块803和目标结果信息接收模块804。各功能模块详细说明如下:
目标操作请求获取模块801,用于获取用户输入的目标操作请求,目标操作请求包括VPN标识和目标请求信息;
VPN实例检测模块802,用于根据VPN标识,判断本地缓存是否存在与VPN标识相对应的VPN实例;
VPN子线程调用模块803,用于若本地缓存中存在VPN实例,调用VPN实例对应的VPN子线程运行;
目标结果信息接收模块804,用于通过消息通信机制与VPN子线程进行通信,接收VPN子线程返回的与目标请求信息相关的目标结果信息。
在一实施例中,VPN子线程调用模块803,包括:
VPN子线程状态检测单元,用于若本地缓存中存在VPN实例,对VPN实例对应的VPN子线程进行状态检测;
VPN子线程调用单元,用于若VPN子线程为正常状态,调用VPN子线程运行;
VPN子线重启单元,用于若VPN子线程为异常状态,根据预设时间,对VPN子线程进行重新启动。
在一实施例中,目标结果信息接收模块804,包括:
第一消息获取单元,用于根据目标请求信息,获取第一消息,将第一消息发送给VPN子线程,第一消息包括请求号、方法名和请求参数;
第二消息,获取单元,用于接收VPN子线程对第一消息进行处理所返回的第二消息,其中,VPN子线程对第一消息进行解析处理包括:根据方法名和请求参数,获取方法执行结果,根据请求号和方法执行结果,获取第二消息;
目标结果信息获取单元,用于对第二消息进行处理,获取目标请求信息对应的目标结果信息。
在另一实施例中,VPN连接管理装置,还包括:
入口文件路径获取模块,用于获取VPN子线程对应的入口文件路径;
VPN实例获取模块,用于根据入口文件路径进行实例化,获取VPN实例;
VPN实例缓存模块,用于将VPN实例进行缓存到本地缓存中,以使VPN实例对应的VPN子线程作为后台常驻线程运行。
在另一实施例中,VPN连接管理装置,还包括:
空闲状态时长获取模块,用于对VPN子线程进行状态监听,获取VPN子线程的空闲状态时长;
VPN子线程关闭模块,用于若空闲状态时长大于预设时长阈值,对VPN子线程进行关闭操作,使得VPN子线程进入后台运行状态。
在另一实施例中,VPN连接管理装置,还包括:
线程状态汇总获取模块,用于对同一任务标识的每一VPN子线程进行状态监听,获取线程状态汇总,线程状态汇总包括空闲线程数量和运行线程数量;
VPN子线程管控模块,用于根据空闲线程数量和运行线程数量,对同一任务标识对应的每一VPN子线程进行管控。
在一实施例中,VPN子线程管控模块,用于还包括:
第一VPN子线程管控单元,用于若空闲线程数量大于运行线程数量,根据线程状态汇总,获取目标线程数量,销毁目标线程数量对应的VPN子线程;
第二VPN子线程管控单元,用于若空闲线程数量不大于运行线程数量,则维持同一任务标识的每一VPN子线程的当前状态。
关于VPN连接管理装置的具体限定可以参见上文中对于VPN连接管理方法的限定,在此不再赘述。上述VPN连接管理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于执行VPN连接管理方法过程中采用或生成的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种VPN连接管理方法。
在一实施例中,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中VPN连接管理方法,例如图2所示S201-S204,或者图3至图7中所示,为避免重复,这里不再赘述。或者,处理器执行计算机程序时实现VPN连接管理装置这一实施例中的各模块/单元的功能,例如图8所示的目标操作请求获取模块801、VPN实例检测模块802、VPN子线程调用模块803和目标结果信息接收模块804的功能,为避免重复,这里不再赘述。
在一实施例中,提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中VPN连接管理方法,例如图2所示S201-S204,或者图3至图7中所示,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现上述VPN连接管理装置这一实施例中的各模块/单元的功能,例如图8所示的目标操作请求获取模块801、VPN实例检测模块802、VPN子线程调用模块803和目标结果信息接收模块804的功能,为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(RambuS)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (10)

1.一种VPN连接管理方法,其特征在于,包括js主线程执行的如下步骤:
获取用户输入的目标操作请求,所述目标操作请求包括VPN标识和目标请求信息;
根据所述VPN标识,判断本地缓存是否存在与所述VPN标识相对应的VPN实例;
若所述本地缓存中存在所述VPN实例,调用所述VPN实例对应的VPN子线程运行;
通过消息通信机制与VPN子线程进行通信,接收所述VPN子线程返回的与所述目标请求信息相关的目标结果信息。
2.如权利要求1所述的VPN连接管理方法,其特征在于,所述若所述本地缓存中存在所述VPN实例,调用所述VPN实例对应的VPN子线程运行,包括:
若所述本地缓存中存在所述VPN实例,对所述VPN实例对应的VPN子线程进行状态检测;
若所述VPN子线程为正常状态,调用所述VPN子线程运行;
若所述VPN子线程为异常状态,根据预设时间,对所述VPN子线程进行重新启动。
3.如权利要求1所述的VPN连接管理方法,其特征在于,所述通过消息通信机制与VPN子线程进行通信,接收所述VPN子线程返回的与所述目标请求信息相关的目标结果信息,包括:
根据所述目标请求信息,获取第一消息,将所述第一消息发送给VPN子线程,所述第一消息包括请求号、方法名和请求参数;
接收所述VPN子线程对所述第一消息进行处理所返回的第二消息,其中,所述VPN子线程对所述第一消息进行解析处理包括:根据所述方法名和所述请求参数,获取方法执行结果,根据所述请求号和所述方法执行结果,获取第二消息;
对所述第二消息进行处理,获取所述目标请求信息对应的目标结果信息。
4.如权利要求1所述的VPN连接管理方法,其特征在于,在所述获取用户输入的目标操作请求之前,所述VPN连接管理方法还包括:
获取所述VPN子线程对应的入口文件路径;
根据所述入口文件路径进行实例化,获取VPN实例;
将所述VPN实例进行缓存到本地缓存中,以使所述VPN实例对应的VPN子线程作为后台常驻线程运行。
5.如权利要求1所述的VPN连接管理方法,其特征在于,在所述通过消息通信机制与VPN子线程进行通信,接收所述VPN子线程返回的与所述目标请求信息相关的目标结果信息之后,所述VPN连接管理方法还包括:
对所述VPN子线程进行状态监听,获取所述VPN子线程的空闲状态时长;
若所述空闲状态时长大于预设时长阈值,对所述VPN子线程进行关闭操作,使得所述VPN子线程进入后台运行状态。
6.如权利要求1所述的VPN连接管理方法,其特征在于,在所述通过消息通信机制与VPN子线程进行通信,接收所述VPN子线程返回的与所述目标请求信息相关的目标结果信息之后,所述VPN连接管理方法还包括:
对同一任务标识的每一VPN子线程进行状态监听,获取线程状态汇总,所述线程状态汇总包括空闲线程数量和运行线程数量;
根据所述空闲线程数量和所述运行线程数量,对同一所述任务标识对应的每一VPN子线程进行管控。
7.如权利要求6所述的VPN连接管理方法,其特征在于,所述根据所述空闲线程数量和所述运行线程数量,对同一所述任务标识对应的每一VPN子线程进行管控,包括:
若所述空闲线程数量大于所述运行线程数量,根据所述线程状态汇总,获取目标线程数量,销毁所述目标线程数量对应的VPN子线程;
若所述空闲线程数量不大于所述运行线程数量,则维持同一所述任务标识的每一VPN子线程的当前状态。
8.一种VPN连接管理装置,其特征在于,包括:
目标操作请求获取模块,用于获取用户输入的目标操作请求,所述目标操作请求包括VPN标识和目标请求信息;
VPN实例检测模块,用于根据所述VPN标识,判断本地缓存是否存在与所述VPN标识相对应的VPN实例;
VPN子线程调用模块,用于若所述本地缓存中存在所述VPN实例,调用所述VPN实例对应的VPN子线程运行;
目标结果信息接收模块,用于通过消息通信机制与VPN子线程进行通信,接收所述VPN子线程返回的与所述目标请求信息相关的目标结果信息。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述VPN连接管理方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述VPN连接管理方法。
CN202210907786.XA 2022-07-29 2022-07-29 Vpn连接管理方法、装置、计算机设备及存储介质 Pending CN115242578A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210907786.XA CN115242578A (zh) 2022-07-29 2022-07-29 Vpn连接管理方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210907786.XA CN115242578A (zh) 2022-07-29 2022-07-29 Vpn连接管理方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN115242578A true CN115242578A (zh) 2022-10-25

Family

ID=83678046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210907786.XA Pending CN115242578A (zh) 2022-07-29 2022-07-29 Vpn连接管理方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN115242578A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216780A (zh) * 2007-01-05 2008-07-09 中兴通讯股份有限公司 在对称多处理体系下实现多实例线程通信的方法及装置
CN108718268A (zh) * 2017-04-07 2018-10-30 格尔软件股份有限公司 一种提高vpn服务端并发处理性能的方法
US20190266011A1 (en) * 2016-02-29 2019-08-29 Alibaba Group Holding Limited Task processing method, apparatus, and system based on distributed system
KR102056849B1 (ko) * 2019-09-20 2019-12-17 김기수 가상 사설 네트워크 시스템
CN111859082A (zh) * 2020-05-27 2020-10-30 伏羲科技(菏泽)有限公司 标识解析方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216780A (zh) * 2007-01-05 2008-07-09 中兴通讯股份有限公司 在对称多处理体系下实现多实例线程通信的方法及装置
US20190266011A1 (en) * 2016-02-29 2019-08-29 Alibaba Group Holding Limited Task processing method, apparatus, and system based on distributed system
CN108718268A (zh) * 2017-04-07 2018-10-30 格尔软件股份有限公司 一种提高vpn服务端并发处理性能的方法
KR102056849B1 (ko) * 2019-09-20 2019-12-17 김기수 가상 사설 네트워크 시스템
CN111859082A (zh) * 2020-05-27 2020-10-30 伏羲科技(菏泽)有限公司 标识解析方法及装置

Similar Documents

Publication Publication Date Title
CN111309374B (zh) 一种微服务***和微服务***中的服务调用方法
CN109167822A (zh) 一种基于区块链的物联网设备控制方法及***
CN111565154B (zh) 图像识别请求处理方法、装置、计算机设备和存储介质
WO2022171083A1 (zh) 基于物联网设备的信息处理方法、相关设备及存储介质
CN112291298A (zh) 异构***的数据传输方法、装置、计算机设备和存储介质
CN114157536A (zh) 基于智能网关的设备接入方法、装置、设备及存储介质
CN111614577B (zh) 一种多通信任务管理方法、装置和计算机设备
CN110738156B (zh) 一种基于消息中间件的人脸识别***及方法
CN113204410A (zh) 集装箱式本地化部署方法、***、设备及存储介质
CN113656164B (zh) 任务执行方法、***、电子设备及计算机存储介质
CN109257396A (zh) 一种分布式锁调度方法及装置
CN113312059B (zh) 一种服务处理***、方法及云原生***
US20210334185A1 (en) Task based service management platform
WO2024103943A1 (zh) 一种业务处理方法、装置、存储介质及设备
CN111835797A (zh) 一种数据处理方法、装置及设备
CN115242578A (zh) Vpn连接管理方法、装置、计算机设备及存储介质
CN111447136B (zh) 消息推送方法、装置、计算机设备和存储介质
CN111901395A (zh) 多集群切换方法及装置
CN107491330B (zh) 一种提高嵌入式浏览器运行速度的方法
CN115509861A (zh) 进程监控方法、***、计算机设备和存储介质
US11489925B2 (en) Information interaction methods, apparatuses, devices, and systems and storage media
CN114064393A (zh) 智能节省硬件资源方法、服务器、通信***及存储介质
CN112612428B (zh) 一种提升Codeigniter框架性能的方法及装置
CN114546648A (zh) 任务处理方法及任务处理平台
CN111211924A (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