WO2020186792A1 - 流媒体服务器执行任务方法、装置及存储介质、终端设备 - Google Patents
流媒体服务器执行任务方法、装置及存储介质、终端设备 Download PDFInfo
- Publication number
- WO2020186792A1 WO2020186792A1 PCT/CN2019/118545 CN2019118545W WO2020186792A1 WO 2020186792 A1 WO2020186792 A1 WO 2020186792A1 CN 2019118545 W CN2019118545 W CN 2019118545W WO 2020186792 A1 WO2020186792 A1 WO 2020186792A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- task
- link
- execution
- streaming media
- media server
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/148—Migration or transfer of sessions
Definitions
- Fig. 3 is a schematic structural diagram of an embodiment of the application server.
- the asynchronous non-blocking mechanism is realized, and the work efficiency of the server is improved, that is, a client's access process is performed in a single thread.
- the work process that executes the current task can be used to perform other services.
- the capacity of the server is increased, the concurrency of the server is improved, and the deadlock under multiple threads is avoided. State synchronization and other issues.
- An embodiment of the present application provides a computer-readable storage medium, wherein a computer program is stored on the computer-readable storage medium, and when the program is executed by a processor, a method for performing tasks of a streaming media server is realized; wherein, the streaming media
- the server execution task method includes the following steps: obtaining a task request sent by a client, parsing the task request to obtain a task execution link; replacing the task execution link with a jump link based on a preset link conversion relationship; and according to the jump link Determine the internal task, execute the internal task, obtain data corresponding to the task execution link, and feed the data back to the client.
- a terminal device provided by an embodiment of the present application can implement the foregoing embodiment of the method for performing tasks on a streaming media server.
- the streaming media server framework constructed by NodeJS is used to implement the streaming media server by modifying the client to
- the server-side link method converts the task corresponding to the link into the internal task of the server, thereby improving the server concurrency.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及开发辅助、服务管理技术领域,本申请实施例提供的一种流媒体服务器执行任务方法,包括:获取客户端发送的任务请求,解析所述任务请求获得任务执行链接;基于预设链接转换关系将所述任务执行链接替换为跳转链接;依据所述跳转链接确定内部任务,执行所述内部任务,获取与所述任务执行链接相对应的数据,将所述数据反馈给客户端。通过单线程和异步输入输出改变原有服务器为每一个用户访问链接建立线程的状况,避免服务器在多线程情况下的死锁、状态同步等问题。通过建立单线程,使得同样任务的事件能够在对应的单线程下排队进行,通过建立不同类型任务事件的线程,以便于流媒体服务器能够支持最大的同时链接用户量。
Description
本申请要求于2019年3月15日提交中国专利局、申请号为201910198407.2,发明名称为“流媒体服务器执行任务方法、装置及存储介质、终端设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及开发辅助、服务管理技术领域,具体涉及一种流媒体服务器执行任务方法、装置及存储介质、终端设备。
传统流媒体服务器在用户访问时,需要为每个用户链接创建了一个线程,即通过多线程的方式实现用户访问量的增加,发明人意识到,每个线程大约要耗费2M的内存,如果一个16G内存的服务器,最多能承载8000个左右的用户,所以服务器怎么支持最大的同时链接用户量就成了一个问题;同时,多线程会出现服务器同时执行多个用户访问的事件,在用户访问量较大时,创建的线程多,会容易出现多线程死锁、状态同步等问题。另外,传统流媒体服务器没有很好的后台和权限管理功能,缺少对用户分权分域和采集设备的管控,无法满足用户日益增长的产品需求;系统功能模块耦合度紧密,对于功能扩展和维护难度大,不易上手。
发明内容
为克服以上技术问题,特别是多线程容易出现死锁、状态同步的问题,特提出以下技术方案:
本申请实施例提供的一种流媒体服务器执行任务方法,包括:获取客户端发送的任务请求,解析所述任务请求获得任务执行链接;基于预设链接转换关系将所述任务执行链接替换为跳转链接;依据所述跳转链接确定内部任务,执行所述内部任务,获取与所述任务执行链接相对应的数据, 将所述数据反馈给客户端。
本申请实施例还提供了一种流媒体服务器执行任务装置,包括:解析模块,用于获取客户端发送的任务请求,解析所述任务请求获得任务执行链接;替换模块,用于基于预设链接转换关系将所述任务执行链接替换为跳转链接;反馈模块,用于依据所述跳转链接确定内部任务,执行所述内部任务,获取与所述任务执行链接相对应的数据,将所述数据反馈给客户端。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现一种流媒体服务器执行任务方法;其中,所述流媒体服务器执行任务方法包括以下步骤:获取客户端发送的任务请求,解析所述任务请求获得任务执行链接;基于预设链接转换关系将所述任务执行链接替换为跳转链接;依据所述跳转链接确定内部任务,执行所述内部任务,获取与所述任务执行链接相对应的数据,将所述数据反馈给客户端。
本申请实施例还提供了一种终端设备,包括:一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行一种流媒体服务器执行任务方法的步骤;其中,所述流媒体服务器执行任务方法包括以下步骤:获取客户端发送的任务请求,解析所述任务请求获得任务执行链接;基于预设链接转换关系将所述任务执行链接替换为跳转链接;依据所述跳转链接确定内部任务,执行所述内部任务,获取与所述任务执行链接相对应的数据,将所述数据反馈给客户端。
在本申请中通过NodeJS构建的流媒体服务器框架实现流媒体服务器,通过修改客户端到服务器端的链接方法,将该链接对应的任务转换成服务器内部任务,进而提高了服务器并发能力,同时通过NodeJS构建的流媒体服务器框架属于前后端分离状态,利用单线程,远离多线程死锁、状态同步等问题。在服务器内部执行当前任务的工作进程不能得到及时的结果时,可以用于去执行其他线程的业务,即通过异步非阻塞机制提高流媒体服务器并发能力,同时降低服务器的耦合度,因此,在流媒体服务器 中的每个工作进程均使用异步非阻塞方式,可以处理多个客户端请求。
图1为本申请流媒体服务器执行任务方法的典型实施例中一种实施方式的流程示意图;
图2为本申请流媒体服务器执行任务装置的典型实施例的结构示意图;
图3为本申请服务器的一实施例结构示意图。
本申请实施例提供的一种流媒体服务器执行任务方法,在其中一种实施方式中,如图1所示,包括:S100、S200、S300。
S100:获取客户端发送的任务请求,解析所述任务请求获得任务执行链接;
S200:基于预设链接转换关系将所述任务执行链接替换为跳转链接;
S300:依据所述跳转链接确定内部任务,执行所述内部任务,获取与所述任务执行链接相对应的数据,将所述数据反馈给客户端。
本申请是基于NodeJS构建的流媒体服务器框架实现流媒体服务器执行任务方法,本申请主要应用于流媒体服务器执行任务过程中,通过单线程和异步输入输出改变原有服务器为每一个用户访问链接建立线程的状况,避免服务器在多线程情况下的死锁、状态同步等问题。通过建立单线程,使得同样任务的事件能够在对应的单线程下排队进行,通过建立不同类型任务事件的线程,以便于流媒体服务器能够支持最大的同时链接用户量。为了达到前述的有益效果,在本申请中,将客户端发送的任务请求转换为流媒体服务器的内部事件,进而避免为每一个用户访问链接创建一个单独的线程。流媒体服务器具体的工作过程中,获取客户端发送的任务请求,由于任务请求是以封包形式发送给服务器的,在获取到任务请求之后,需要对其进行解析,以获得其中的任务执行链接,如客户端需要访问的对端地址,因此,需要对该任务请求进行解析,以获取任务请求中包含的任 务执行链接。服务器获取到任务执行链接之后,然后对该任务执行链接进行修改,将执行该任务的过程变成流媒体服务器内部执行事件,因此将任务执行链接修改为跳转链接。
在其中一种实施方式中,可选地,所述基于预设链接转换关系将所述任务执行链接替换为跳转链接,包括:提取所述任务执行链接中所携带的任务执行协议;基于所述预设链接转换关系中的协议映射关系获取所述任务执行协议对应的跳转协议;依据所述跳转协议和所述任务执行链接将所述任务执行链接替换为所述跳转链接。在本申请提供的实施例中,服务器可以预存储有任务执行链接与跳转链接之间协议的映射关系式,常规的协议包括:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet,如任务执行链接的协议为http,服务器内部协议之间的映射关系为http对应于DNS,则基于协议的映射关系将http修改为DNS,进而将任务执行链接的协议进行修改转换,获得跳转协议,如前述的DNS协议,进一步地,任务执行链接中的对端地址不变,仅对协议进行修改。在将http协议修改为DNS之后,则获得包括DNS协议的连接,通过协议将原任务执行请求转换为流媒体服务器内部处理事件,即DNS为流媒体服务内部对话/认证协议。
流媒体服务器将前述任务执行请求转换成跳转链接之后,则将前述客户端发送任务执行请求确定为内部任务,流媒体服务器则可以根据跳转链接确定进行内部事件处理过程,并根据该跳转协议获取到原任务执行链接对应的资源。具体的,将其转化为内部处理事件之后,则可以通过服务器内部的模块处理该事件,服务器每当收到一个客户端的任务请求时,服务器创建一个进程出来和客户端建立连接进行交互,直到连接断开,该进程才断开连接结束本次任务。其中交互过程则为执行内部任务,获取原任务执行连接对应资源的过程,该进程执行过程中还可以包括读取跳转链接中包含的请求,解析跳转链接中包含的请求确定内部任务,处理该请求的内部任务以产生相应的数据,再将该数据返回给客户端,最后断开连接。使用进程的好处是各个进程之间相互独立,不需要加锁,减少了使用锁对性能造成影响,同时降低编程的复杂度,降低开发成本。其次,采用独立的进程,可以让进程互相之间不会影响,如果一个进程发生异常退出时, 其它进程正常工作,服务器也可以很快启动新进程,确保服务不会中断,从而将风险降到最低。
可选地,所述获取客户端发送的任务请求之后,包括:
建立检测所述任务请求执行时间的时间检测器;
基于所述时间检测器检测到的时间确定当前所述任务请求的执行空段。
由于本申请可以通过异步非阻塞机制提高流媒体的工作效率,以便于在执行空段时间,服务器可以将前述的进程用于执行其他的任务。时间检测器如后文的setTimeout,不同的方法搭建的服务器框架可以具有不同的时间检测器文字。在此过程中,服务器内的工作进程在执行过程,不能够及时得到结果时,则触发setTimeout时间检测器检测时间,触发时间检测器之后,其中该setTimeout如后文所述位于一端调用程序的末端,以便于在服务器将前述工作进程调为他用时,可以基于该setTimeout语句触发前述任务执行链接对应的任务。在此过程中,可以向客户端发送反馈信息,以使得客户端可以去做其他的事情,通过前述过程实现异步非阻塞机制,提供服务器的工作效率,即在单线程下进行一个客户端的访问过程中,在任务执行过程的等待过程中,可以将执行当前任务的工作进程用于执行其他业务,通过异步非阻塞方式,提高服务器的容纳量,提高服务器的并发能力,避免多线程下死锁、状态同步等问题。
可选地,所述基于所述时间检测器检测到的时间确定当前所述任务请求的执行空段之后,包括:
在当前所述任务请求到达所述执行空段时,获取已触发的其他线程中的未执行事件;
在所述执行空段的时间段内,执行其他线程中的所述未执行事件。
可选地,所述执行其他线程中的所述未执行事件之后,包括:
接收当前所述任务请求的数据,暂停正在执行的其他线程中的所述未执行事件,将所述数据反馈给客户端。
结合前述可知,通过异步非阻塞机制提高流媒体服务器并发能力,同时降低服务器的耦合度,因此,在流媒体服务器中的每个工作进程均使用 异步非阻塞方式,可以处理多个客户端请求。当流媒体服务器中的某个工作进程接收到前述通过客户端请求转化得到的内部任务以后,在执行过程中,调用接口I/O进行处理,如果不能立即得到结果,则可以确定为当前任务请求的执行空段,则将该工作进程用于处理其他请求(实现非阻塞的状态),其他请求即已触发的其他线程中未执行的时间,如可以执行请求响应,磁盘读写,输入输出等;而如前所述客户端在此期间也无需等待响应,可以去处理其他事情(实现异步)。当I/O返回时,就会通知此工作进程;该进程得到通知,暂时挂起当前处理的事务去响应客户端请求,即将I/O返回的数据反馈给客户端,在客户端的任务完成之后,服务器分配的工作进程断开与客户端的连接,并将该客户端用于继续执行前述其他线程中未执行事件。
通过前述过程,实现了基于NodeJS的流媒体服务器端具备同时处理多达几万个用户的客户端访问能力;在具体的实施过程中,还可以通过NodeJS为流媒体服务器进行多样化的组件配套操作,如接口化、管理化、数据库相关的操作,从而使得流媒体服务器底层只需要关注核心流媒体的功能,降低流媒体服务器的耦合度,在本申请中,还使用C++编写Node插件进行流媒体关于复杂计算类型的功能,便于日后扩展和维护,很好地满足产品迭代开发需求。
在当前任务不能及时得到结果时,则执行当前任务的工作进程用于执行其他未执行事件中在setTimeout基础上,还需要回调函数实现,运行过程的程序如下:
例如:
通过前述过程说明了Nodejs是单线程运行、基于事件驱动的,先同步(即按从上到下的顺序)执行整个js文件中的代码(此时的事件循环是暂停的),当遇到异步函数(setTimeout计时函数)时,会从线程池中寻求有用的线程来执行该异步函数,当异步函数执行完,就将回调函数放入消息队列里面。当整个js文件执行完后,事件循环开始执行,从消息队列里面取消息,开始执行里面的回调函数,即通过回调函数执行当前任务未完成的事件。
可选地,接收当前所述任务请求的数据之后,还包括:
基于NodeJS构建的流媒体服务器框架获取当前所述任务请求与正执行事件对应的用户与权限的关联关系,对比当前所述任务请求与所述正执行事件对应的用户权限;
在当前所述任务请求对应的用户权限高于所述正执行事件对应的用户权限时,暂停正在执行的其他线程中的所述未执行事件;
在当前所述任务请求对应的用户权限低于所述正执行事件对应的用户权限时,继续执行正在执行的其他线程中的所述正执行事件。如前所述,在本申请是基于NodeJS语言构建了基于web的服务器关联平台,因此,在对应的流媒体服务器中,还可以通过该服务器平台实现对用户、角色、权限任意一项或者多项的调整,关于用户权限角色管理,采用的是RBAC(Role-based access control)访问控制模型最基本的实现来管理(用户表、角色表、权限表、用户-角色关联表、角色-权限关联表)。通过该方法避免用于固定于一个ID或者地点对前述的用户权限角色管理,进而方便用户可以随时随地的进行用户权限角色管理,提高用户的管理效率。进一步地,由于不同用户可能具有不同权限,针对不同权限,对空档期的执行方 式不同,比如,在当前所述任务请求对应的用户权限高于所述正执行事件对应的用户权限时,暂停正在执行的其他线程中的所述未执行事件;在当前所述任务请求对应的用户权限低于所述正执行事件对应的用户权限时,继续执行正在执行的其他线程中的所述正执行事件,其中,所述正执行事件为前述其他线程中未执行的事件。具体的,当前任务请求对应用户权限高于其他线程事件对应的用户权限时,优先执行当前任务请求,再执行其他线程未执行完成的事件,当前任务请求对应用户权限低于其他线程事件对应的用户权限时,执行完正在执行的线程中的事件,再执行当前任务请求。
可选地,所述基于NodeJS构建的流媒体服务器框架获取当前所述任务请求与正执行事件对应的用户与权限的关联关系之后,还包括:
获取用户的权限使用数据和权限置信阈值,依据所述使用数据确定用户的权限置信值;
依据所述权限置信值和所述权限置信阈值对用户的权限进行调整。
所述权限使用数据是指记录在服务器数据库中的用户权限选项的历史使用记录,每条历史使用记录包括:用户ID、权限名称、权限选择、用户访问历史记录、每条历史记录还可以包括权限设置的修改记录。在用户历史记录比较良好时,且用户权限修改记录都是将用户权限往高的调整时,则可以对用户的权限进行修改。例如,基于前述用户记录和用户修改记录等可以确定用户的权限置信值为8分,对应于7-8分的权限置信阈值,则将用户的权限调整到7-8分权限置信阈值对应的权限,进而在后续根据该用户权限进行用户访问请求事件的优先处理。
本申请的实施例还提供了一种流媒体服务器执行任务方法装置,在其中一种实施方式中,如图2所示,包括:解析模块100、替换模块200、反馈模块300。
解析模块100,用于获取客户端发送的任务请求,解析所述任务请求获得任务执行链接;
替换模块200,用于基于预设链接转换关系将所述任务执行链接替换为跳转链接;
反馈模块300,用于依据所述跳转链接确定内部任务,执行所述内部任务,获取与所述任务执行链接相对应的数据,将所述数据反馈给客户端。
进一步地,如图2所示,本申请实施例中提供的一种流媒体服务器执行任务方法装置还包括:提取单元210,用于提取所述任务执行链接中所携带的任务执行协议;跳转协议获取单元220,用于基于所述预设链接转换关系中的协议映射关系获取所述任务执行协议对应的跳转协议;替换单元230,用于依据所述跳转协议和所述任务执行链接将所述任务执行链接替换为所述跳转链接。时间检测器建立模块101,用于建立检测所述任务请求执行时间的时间检测器;执行空段确定模块102,用于基于所述时间检测器检测到的时间确定当前所述任务请求的执行空段。未执行事件获取模块103,用于在当前所述任务请求到达所述执行空段时,获取已触发的其他线程中的未执行事件;未执行事件执行模块104,用于在所述执行空段的时间段内,执行其他线程中的所述未执行事件。接收模块105,用于接收当前所述任务请求的数据,暂停正在执行的其他线程中的所述未执行事件。对比模块106,用于基于NodeJS构建的流媒体服务器框架获取当前所述任务请求与正执行事件对应的用户与权限的关联关系,对比当前所述任务请求与所述正执行事件对应的用户权限;暂停模块107,用于在当前所述任务请求对应的用户权限高于所述正执行事件对应的用户权限时,暂停正在执行的其他线程中的所述未执行事件;继续执行模块108,用于在当前所述任务请求对应的用户权限低于所述正执行事件对应的用户权限时,继续执行正在执行的其他线程中的所述正执行事件;权限置信值确定模块1091,用于获取用户的权限使用数据和权限置信阈值,依据所述使用数据确定用户的权限置信值;权限调整模块1092,用于依据所述权限置信值和所述权限置信阈值对用户的权限进行调整。
本申请实施例提供的一种流媒体服务器执行任务方法装置可以实现上述流媒体服务器执行任务方法的实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。
本申请实施例提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现一种流媒体服务器 执行任务方法;其中,所述流媒体服务器执行任务方法包括以下步骤:获取客户端发送的任务请求,解析所述任务请求获得任务执行链接;基于预设链接转换关系将所述任务执行链接替换为跳转链接;依据所述跳转链接确定内部任务,执行所述内部任务,获取与所述任务执行链接相对应的数据,将所述数据反馈给客户端。其中,所述计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储设备包括由设备(例如,计算机、手机)以能够读的形式存储或传输信息的任何介质,可以是只读存储器,磁盘或光盘等。所述存储介质可以是非易失性存储介质,也可以是易失性存储介质。
本申请实施例提供的一种计算机可读存储介质,可实现上述流媒体服务器执行任务方法的实施例,在本申请中通过NodeJS构建的流媒体服务器框架实现流媒体服务器,通过修改客户端到服务器端的链接方法,将该链接对应的任务转换成服务器内部任务,进而提高了服务器并发能力,同时通过NodeJS构建的流媒体服务器框架属于前后端分离状态,利用单线程,远离多线程死锁、状态同步等问题;本申请实施例提供的一种流媒体服务器执行任务方法,包括:获取客户端发送的任务请求,解析所述任务请求获得任务执行链接;基于预设链接转换关系将所述任务执行链接替换为跳转链接;依据所述跳转链接确定内部任务,执行所述内部任务,获取与所述任务执行链接相对应的数据,将所述数据反馈给客户端。在本申请中,将客户端发送的任务请求转换为流媒体服务器的内部事件,进而避免为每一个用户访问链接创建一个单独的线程。流媒体服务器具体的工作过程中,获取客户端发送的任务请求,由于任务请求是以封包形式发送给服务器的,在获取到任务请求之后,需要对其进行解析,以获得其中的任务执行链接,如客户端需要访问的对端地址,因此,需要对该任务请求进行解析,以获取任务请求中包含的任务执行链接。服务器获取到任务执行链 接之后,然后对该任务执行链接进行修改,将执行该任务的过程变成流媒体服务器内部执行事件,因此将任务执行链接修改为跳转链接。在本申请提供的实施例中,服务器可以预存储有任务执行链接与跳转链接之间协议的映射关系式,常规的协议包括:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet,如任务执行链接的协议为http,服务器内部协议之间的映射关系为http对应与DNS,则基于协议的映射关系将http修改为DNS,进而将任务执行链接的协议进行修改转换,获得跳转协议,如前述的DNS协议,进一步地,任务执行链接中的对端地址不变,仅对协议进行修改。在将http协议修改为DNS之后,则获得包括DNS协议的连接,通过协议将原任务执行请求转换为流媒体服务器内部处理事件,即DNS为流媒体服务内部对话/认证协议。流媒体服务器将前述任务执行请求转换成跳转链接之后,则将前述客户端发送任务执行请求确定为内部任务,流媒体服务器则可以根据跳转链接确定进行内部事件处理过程,并根据该跳转协议获取到原任务执行链接对应的资源。具体的,将其转化为内部处理事件之后,则可以通过服务器内部的模块处理该事件,服务器每当收到一个客户端的任务请求时,服务器创建一个进程出来和客户端建立连接进行交互,直到连接断开,该进程才断开连接结束本次任务。其中交互过程则为执行内部任务,获取原任务执行连接对应资源的过程,该进程执行过程中还可以包括读取跳转链接中包含的请求,解析跳转链接中包含的请求确定内部任务,处理该请求的内部任务以产生相应的数据,再将该数据返回给客户端,最后断开连接。使用进程的好处是各个进程之间相互独立,不需要加锁,减少了使用锁对性能造成影响,同时降低编程的复杂度,降低开发成本。其次,采用独立的进程,可以让进程互相之间不会影响,如果一个进程发生异常退出时,其它进程正常工作,服务器也可以很快启动新进程,确保服务不会中断,从而将风险降到最低。
此外,在又一种实施例中,本申请还提供一种终端设备,如图3所示,所述终端设备处理器503、存储器505、输入单元507以及显示单元509等器件。本领域技术人员可以理解,图3示出的结构器件并不构成对所有终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件。 存储器505可用于存储应用程序501以及各功能模块,处理器503运行存储在存储器505的应用程序501,从而执行设备的各种功能应用以及数据处理。存储器505可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本申请所公开的存储器包括但不限于这些类型的存储器。本申请所公开的存储器505只作为例子而非作为限定。
输入单元507用于接收信号的输入,以及用户输入的个人信息和相关的身体状况信息。输入单元507可包括触控面板以及其它输入设备。触控面板可收集客户在其上或附近的触摸操作(比如客户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元509可用于显示客户输入的信息或提供给客户的信息以及计算机设备的各种菜单。显示单元509可采用液晶显示器、有机发光二极管等形式。处理器503是计算机设备的控制中心,利用各种接口和线路连接整个电脑的各个部分,通过运行或执行存储在存储器503内的软件程序和/或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据。图3中所示的一个或多个处理器503能够执行、实现图2中所示的解析模块100的功能、替换模块200的功能、反馈模块300的功能、提取单元210的功能、跳转协议获取单元220的功能、替换单元230的功能、时间检测器建立模块101的功能、执行空段确定模块102的功能、未执行事件获取模块103的功能、未执行事件执行模块104的功能、接收模块105的功能、对比模块106的功能、暂停模块107的功能、继续执行模块108的功能、权限置信值确定模块1091的功能、权限调整模块1092的功能。
在一种实施方式中,所述终端设备包括一个或多个处理器503,以及一个或多个存储器505,一个或多个应用程序501,其中所述一个或多个 应用程序501被存储在存储器505中并被配置为由所述一个或多个处理器503执行,所述一个或多个应用程序301配置用于执行一种流媒体服务器执行任务方法;其中,所述流媒体服务器执行任务方法包括以下步骤:获取客户端发送的任务请求,解析所述任务请求获得任务执行链接;基于预设链接转换关系将所述任务执行链接替换为跳转链接;依据所述跳转链接确定内部任务,执行所述内部任务,获取与所述任务执行链接相对应的数据,将所述数据反馈给客户端。
本申请实施例提供的一种终端设备,可实现上述流媒体服务器执行任务方法的实施例,在本申请中在本申请中通过NodeJS构建的流媒体服务器框架实现流媒体服务器,通过修改客户端到服务器端的链接方法,将该链接对应的任务转换成服务器内部任务,进而提高了服务器并发能力,同时通过NodeJS构建的流媒体服务器框架属于前后端分离状态,利用单线程,远离多线程死锁、状态同步等问题;本申请实施例提供的一种流媒体服务器执行任务方法,包括:获取客户端发送的任务请求,解析所述任务请求获得任务执行链接;基于预设链接转换关系将所述任务执行链接替换为跳转链接;依据所述跳转链接确定内部任务,执行所述内部任务,获取与所述任务执行链接相对应的数据,将所述数据反馈给客户端。在本申请中,将客户端发送的任务请求转换为流媒体服务器的内部事件,进而避免为每一个用户访问链接创建一个单独的线程。流媒体服务器具体的工作过程中,获取客户端发送的任务请求,由于任务请求是以封包形式发送给服务器的,在获取到任务请求之后,需要对其进行解析,以获得其中的任务执行链接,如客户端需要访问的对端地址,因此,需要对该任务请求进行解析,以获取任务请求中包含的任务执行链接。服务器获取到任务执行链接之后,然后对该任务执行链接进行修改,将执行该任务的过程变成流媒体服务器内部执行事件,因此将任务执行链接修改为跳转链接。在本申请提供的实施例中,服务器可以预存储有任务执行链接与跳转链接之间协议的映射关系式,常规的协议包括:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet,如任务执行链接的协议为http,服务器内部协议之间的映射关系为http对应与DNS,则基于协议的映射关系将http修改为DNS, 进而将任务执行链接的协议进行修改转换,获得跳转协议,如前述的DNS协议,进一步地,任务执行链接中的对端地址不变,仅对协议进行修改。在将http协议修改为DNS之后,则获得包括DNS协议的连接,通过协议将原任务执行请求转换为流媒体服务器内部处理事件,即DNS为流媒体服务内部对话/认证协议。流媒体服务器将前述任务执行请求转换成跳转链接之后,则将前述客户端发送任务执行请求确定为内部任务,流媒体服务器则可以根据跳转链接确定进行内部事件处理过程,并根据该跳转协议获取到原任务执行链接对应的资源。具体的,将其转化为内部处理事件之后,则可以通过服务器内部的模块处理该事件,服务器每当收到一个客户端的任务请求时,服务器创建一个进程出来和客户端建立连接进行交互,直到连接断开,该进程才断开连接结束本次任务。其中交互过程则为执行内部任务,获取原任务执行连接对应资源的过程,该进程执行过程中还可以包括读取跳转链接中包含的请求,解析跳转链接中包含的请求确定内部任务,处理该请求的内部任务以产生相应的数据,再将该数据返回给客户端,最后断开连接。使用进程的好处是各个进程之间相互独立,不需要加锁,减少了使用锁对性能造成影响,同时降低编程的复杂度,降低开发成本。其次,采用独立的进程,可以让进程互相之间不会影响,如果一个进程发生异常退出时,其它进程正常工作,服务器也可以很快启动新进程,确保服务不会中断,从而将风险降到最低。
本申请实施例提供的终端设备可以实现上述提供的流媒体服务器执行任务方法的实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。
Claims (20)
- 一种流媒体服务器执行任务方法,包括:获取客户端发送的任务请求,解析所述任务请求获得任务执行链接;基于预设链接转换关系将所述任务执行链接替换为跳转链接;依据所述跳转链接确定内部任务,执行所述内部任务,获取与所述任务执行链接相对应的数据,将所述数据反馈给客户端。
- 根据权利要求1所述的流媒体服务器执行任务方法,所述基于预设链接转换关系将所述任务执行链接替换为跳转链接,包括:提取所述任务执行链接中所携带的任务执行协议;基于预设协议映射关系获取所述任务执行协议对应的跳转协议;依据所述跳转协议和所述任务执行链接将所述任务执行链接替换为所述跳转链接。
- 根据权利要求1所述的流媒体服务器执行任务方法,所述获取客户端发送的任务请求之后,包括:建立检测所述任务请求执行时间的时间检测器;基于所述时间检测器检测到的时间确定当前所述任务请求的执行空段。
- 根据权利要求3所述的流媒体服务器执行任务方法,所述基于所述时间检测器检测到的时间确定当前所述任务请求的执行空段之后,包括:在当前所述任务请求到达所述执行空段时,获取已触发的其他线程中的未执行事件;在所述执行空段的时间段内,执行其他线程中的所述未执行事件。
- 根据权利要求4所述的流媒体服务器执行任务方法,所述执行其他线程中的所述未执行事件之后,包括:接收当前所述任务请求的数据,暂停正在执行的其他线程中的所述未执行事件。
- 根据权利要求5所述的流媒体服务器执行任务方法,所述接收当 前所述任务请求的数据之后,还包括:基于NodeJS构建的流媒体服务器框架获取当前所述任务请求与正执行事件对应的用户与权限的关联关系,对比当前所述任务请求与所述正执行事件对应的用户权限;在当前所述任务请求对应的用户权限高于所述正执行事件对应的用户权限时,暂停正在执行的其他线程中的所述未执行事件;在当前所述任务请求对应的用户权限低于所述正执行事件对应的用户权限时,继续执行正在执行的其他线程中的所述正执行事件。
- 根据权利要求6所述的流媒体服务器执行任务方法,所述基于NodeJS构建的流媒体服务器框架获取当前所述任务请求与正执行事件对应的用户与权限的关联关系之后,还包括:获取用户的权限使用数据和权限置信阈值,依据所述使用数据确定用户的权限置信值;依据所述权限置信值和所述权限置信阈值对用户的权限进行调整。
- 一种流媒体服务器执行任务装置,包括:解析模块,用于获取客户端发送的任务请求,解析所述任务请求获得任务执行链接;替换模块,用于基于预设链接转换关系将所述任务执行链接替换为跳转链接;反馈模块,用于依据所述跳转链接确定内部任务,执行所述内部任务,获取与所述任务执行链接相对应的数据,将所述数据反馈给客户端。
- 一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现一种流媒体服务器执行任务方法;其中,所述流媒体服务器执行任务方法包括以下步骤:获取客户端发送的任务请求,解析所述任务请求获得任务执行链接;基于预设链接转换关系将所述任务执行链接替换为跳转链接;依据所述跳转链接确定内部任务,执行所述内部任务,获取与所述任务执行链接相对应的数据,将所述数据反馈给客户端。
- 根据权利要求9所述的存储介质,所述基于预设链接转换关系将 所述任务执行链接替换为跳转链接,包括:提取所述任务执行链接中所携带的任务执行协议;基于预设协议映射关系获取所述任务执行协议对应的跳转协议;依据所述跳转协议和所述任务执行链接将所述任务执行链接替换为所述跳转链接。
- 根据权利要求9所述的存储介质,所述获取客户端发送的任务请求之后,包括:建立检测所述任务请求执行时间的时间检测器;基于所述时间检测器检测到的时间确定当前所述任务请求的执行空段。
- 根据权利要求11所述的存储介质,所述基于所述时间检测器检测到的时间确定当前所述任务请求的执行空段之后,包括:在当前所述任务请求到达所述执行空段时,获取已触发的其他线程中的未执行事件;在所述执行空段的时间段内,执行其他线程中的所述未执行事件。
- 根据权利要求12所述的存储介质,所述执行其他线程中的所述未执行事件之后,包括:接收当前所述任务请求的数据,暂停正在执行的其他线程中的所述未执行事件。
- 根据权利要求13所述的存储介质,所述接收当前所述任务请求的数据之后,还包括:基于NodeJS构建的流媒体服务器框架获取当前所述任务请求与正执行事件对应的用户与权限的关联关系,对比当前所述任务请求与所述正执行事件对应的用户权限;在当前所述任务请求对应的用户权限高于所述正执行事件对应的用户权限时,暂停正在执行的其他线程中的所述未执行事件;在当前所述任务请求对应的用户权限低于所述正执行事件对应的用户权限时,继续执行正在执行的其他线程中的所述正执行事件。
- 根据权利要求14所述的存储介质,所述基于NodeJS构建的流媒 体服务器框架获取当前所述任务请求与正执行事件对应的用户与权限的关联关系之后,还包括:获取用户的权限使用数据和权限置信阈值,依据所述使用数据确定用户的权限置信值;依据所述权限置信值和所述权限置信阈值对用户的权限进行调整。
- 一种终端设备,包括:一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行一种流媒体服务器执行任务方法的步骤;其中,所述流媒体服务器执行任务方法包括以下步骤:获取客户端发送的任务请求,解析所述任务请求获得任务执行链接;基于预设链接转换关系将所述任务执行链接替换为跳转链接;依据所述跳转链接确定内部任务,执行所述内部任务,获取与所述任务执行链接相对应的数据,将所述数据反馈给客户端。
- 根据权利要求16所述的终端设备,所述基于预设链接转换关系将所述任务执行链接替换为跳转链接,包括:提取所述任务执行链接中所携带的任务执行协议;基于预设协议映射关系获取所述任务执行协议对应的跳转协议;依据所述跳转协议和所述任务执行链接将所述任务执行链接替换为所述跳转链接。
- 根据权利要求16所述的终端设备,所述获取客户端发送的任务请求之后,包括:建立检测所述任务请求执行时间的时间检测器;基于所述时间检测器检测到的时间确定当前所述任务请求的执行空段。
- 根据权利要求18所述的终端设备,所述基于所述时间检测器检测到的时间确定当前所述任务请求的执行空段之后,包括:在当前所述任务请求到达所述执行空段时,获取已触发的其他线程中的未执行事件;在所述执行空段的时间段内,执行其他线程中的所述未执行事件。
- 根据权利要求19所述的终端设备,所述执行其他线程中的所述未执行事件之后,包括:接收当前所述任务请求的数据,暂停正在执行的其他线程中的所述未执行事件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910198407.2 | 2019-03-15 | ||
CN201910198407.2A CN110113374B (zh) | 2019-03-15 | 2019-03-15 | 流媒体服务器执行任务方法、装置及存储介质、终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020186792A1 true WO2020186792A1 (zh) | 2020-09-24 |
Family
ID=67484343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2019/118545 WO2020186792A1 (zh) | 2019-03-15 | 2019-11-14 | 流媒体服务器执行任务方法、装置及存储介质、终端设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110113374B (zh) |
WO (1) | WO2020186792A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112910794A (zh) * | 2021-01-07 | 2021-06-04 | 广州广哈通信股份有限公司 | 一种多路e1组网的负载均衡系统 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110113374B (zh) * | 2019-03-15 | 2022-03-25 | 平安科技(深圳)有限公司 | 流媒体服务器执行任务方法、装置及存储介质、终端设备 |
CN111343239B (zh) * | 2020-02-10 | 2022-11-04 | 中国银联股份有限公司 | 通信请求处理方法、通信方法、通信请求处理装置以及交易系统 |
CN113709420A (zh) * | 2021-08-30 | 2021-11-26 | 远光软件股份有限公司 | 流媒体数据的传输方法、装置、存储介质及电子设备 |
CN118158205A (zh) * | 2024-05-11 | 2024-06-07 | 深圳天海宸光科技有限公司 | 一种短期流媒体缓存处理方法、装置、介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8612618B2 (en) * | 2011-10-31 | 2013-12-17 | King Fahd University Of Petroleum And Minerals | Peer-to-peer DNS networking method |
CN107784065A (zh) * | 2017-08-17 | 2018-03-09 | 平安壹钱包电子商务有限公司 | 业务数据跟踪方法、装置、计算机设备及存储介质 |
CN108429645A (zh) * | 2018-03-05 | 2018-08-21 | 深圳乐信软件技术有限公司 | 一种api网关的配置方法、装置、存储介质及api网关 |
CN108429783A (zh) * | 2018-01-16 | 2018-08-21 | 重庆金融资产交易所有限责任公司 | 电子装置、配置文件推送方法及存储介质 |
CN110113374A (zh) * | 2019-03-15 | 2019-08-09 | 平安科技(深圳)有限公司 | 流媒体服务器执行任务方法、装置及存储介质、终端设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8996652B2 (en) * | 2012-06-15 | 2015-03-31 | Citrix Systems, Inc. | Systems and methods for cluster LAG |
CN104142942A (zh) * | 2013-05-08 | 2014-11-12 | 北京航天长峰科技工业集团有限公司 | 一种海量异构数据的接入及标准化方法 |
US9870276B2 (en) * | 2013-09-26 | 2018-01-16 | Continental Automotive Gmbh | User message queue method for inter-process communication |
CN104202620A (zh) * | 2014-07-04 | 2014-12-10 | 南京超聚通信科技有限公司 | 移动智能终端实现单向机顶盒视频点播回看的系统及方法 |
CN108762898B (zh) * | 2018-04-09 | 2023-04-25 | 平安科技(深圳)有限公司 | 一种线程接口的管理方法、终端设备及计算机可读存储介质 |
-
2019
- 2019-03-15 CN CN201910198407.2A patent/CN110113374B/zh active Active
- 2019-11-14 WO PCT/CN2019/118545 patent/WO2020186792A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8612618B2 (en) * | 2011-10-31 | 2013-12-17 | King Fahd University Of Petroleum And Minerals | Peer-to-peer DNS networking method |
CN107784065A (zh) * | 2017-08-17 | 2018-03-09 | 平安壹钱包电子商务有限公司 | 业务数据跟踪方法、装置、计算机设备及存储介质 |
CN108429783A (zh) * | 2018-01-16 | 2018-08-21 | 重庆金融资产交易所有限责任公司 | 电子装置、配置文件推送方法及存储介质 |
CN108429645A (zh) * | 2018-03-05 | 2018-08-21 | 深圳乐信软件技术有限公司 | 一种api网关的配置方法、装置、存储介质及api网关 |
CN110113374A (zh) * | 2019-03-15 | 2019-08-09 | 平安科技(深圳)有限公司 | 流媒体服务器执行任务方法、装置及存储介质、终端设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112910794A (zh) * | 2021-01-07 | 2021-06-04 | 广州广哈通信股份有限公司 | 一种多路e1组网的负载均衡系统 |
CN112910794B (zh) * | 2021-01-07 | 2023-04-07 | 国网河北省电力有限公司信息通信分公司 | 一种多路e1组网的负载均衡系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110113374A (zh) | 2019-08-09 |
CN110113374B (zh) | 2022-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020186792A1 (zh) | 流媒体服务器执行任务方法、装置及存储介质、终端设备 | |
US11593599B2 (en) | Long running workflows for document processing using robotic process automation | |
US20220327125A1 (en) | Query scheduling based on a query-resource allocation and resource availability | |
US11321321B2 (en) | Record expansion and reduction based on a processing task in a data intake and query system | |
US20200364223A1 (en) | Search time estimate in a data intake and query system | |
EP3610629B1 (en) | Activity feed service | |
US20190272271A1 (en) | Assigning processing tasks in a data intake and query system | |
US20190310977A1 (en) | Bucket data distribution for exporting data to worker nodes | |
US20190258637A1 (en) | Partitioning and reducing records at ingest of a worker node | |
US20190258635A1 (en) | Determining Records Generated by a Processing Task of a Query | |
US9672082B2 (en) | Guaranteeing the event order for multi-stage processing in distributed systems | |
US9514201B2 (en) | Method and system for non-intrusive event sequencing | |
US20120030275A1 (en) | Providing status information for components in a distributed landscape | |
US10853220B2 (en) | Determining user engagement with software applications | |
US9274857B2 (en) | Method and system for detecting work completion in loosely coupled components | |
US8407713B2 (en) | Infrastructure of data summarization including light programs and helper steps | |
US11915062B2 (en) | Server instance introspection for shared resource collisions using call stack dependencies | |
CN113641472A (zh) | 分布式应用的异转同实现方法及装置 | |
CN107632893B (zh) | 消息队列处理方法及装置 | |
WO2021004411A1 (zh) | 一种媒体处理方法 | |
US20210029250A1 (en) | System and method of embedding and launching a form from third-party knowledge content | |
US11182042B2 (en) | Application input and feedback system | |
US20110093505A1 (en) | Asynchronous state engine with plug-ins for flexible application development | |
TWM600871U (zh) | 排程和執行工作的電腦程式產品和裝置 | |
Mathew | Architectural considerations for highly scalable computing to support on-demand video analytics |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19920082 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19920082 Country of ref document: EP Kind code of ref document: A1 |