CN113852635A - 任务处理方法、装置、终端设备及存储介质 - Google Patents
任务处理方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN113852635A CN113852635A CN202111132755.3A CN202111132755A CN113852635A CN 113852635 A CN113852635 A CN 113852635A CN 202111132755 A CN202111132755 A CN 202111132755A CN 113852635 A CN113852635 A CN 113852635A
- Authority
- CN
- China
- Prior art keywords
- task
- information
- field
- request instruction
- message
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 43
- 230000002452 interceptive effect Effects 0.000 claims abstract description 36
- 238000012545 processing Methods 0.000 claims abstract description 34
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000004891 communication Methods 0.000 claims abstract description 30
- 230000003993 interaction Effects 0.000 claims description 41
- 230000008569 process Effects 0.000 abstract description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000011161 development Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000005316 response function Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 210000001503 joint Anatomy 0.000 description 2
- 238000003032 molecular docking Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/03—Protocol definition or specification
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种任务处理方法、装置、终端设备及存储介质,该方法包括:当检测到请求指令时,将所述请求指令注册到预设的事件反应器上,并通过该事件反应器将所述请求指令发送至任务接收方的信号队列中;对所述信号队列进行检测,当检测到所述请求指令被所述任务接收方处理时,获取所述请求指令的报文版本信息;根据所述报文版本信息确定任务接收方的解码字段;根据所述解码字段对所述请求指令的报文信息进行解码处理,并根据解码后的报文信息处理所述请求指令对应的目标事件。本发明通过报文版本信息确定能参与通信报文解码的字段信息,实现对交互协议的版本控制,当服务升级时也能够保证原先业务流程的正常通信,不会对原先业务流程造成影响。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种任务处理方法、装置、终端设备及存储介质。
背景技术
常用的服务端开发框架主要有两种:libevent与ace框架。这两种框架中对请求任务的处理方式都是基于事件-反应器模式,该模式下对请求时间处理的性能高、响应快,不会被单个同步事件所阻塞,性能较好。但请求端和服务端缺乏交互协议,导致请求端对接复杂,当服务升级时,还容易影响原先业务流程。
发明内容
本发明的主要目的在于提供一种任务处理方法、装置、终端设备及存储介质,旨在解决现有开发框架中的任务处理方式缺少交互协议,服务升级时容易影响原先业务流程的技术问题。
此外,为实现上述目的,本发明还提供一种任务处理方法,所述任务处理方法包括以下步骤:
当检测到任务请求方的请求指令时,将所述请求指令注册到预设的事件反应器上,并通过所述事件反应器将所述请求指令发送至任务接收方的信号队列中;
对所述信号队列进行检测,当检测到所述请求指令被所述任务接收方处理时,获取所述请求指令的报文版本信息;
根据所述报文版本信息从所述任务接收方中确定解码字段;
根据所述解码字段对所述请求指令的报文信息进行解码处理,并根据解码后的报文信息处理所述请求指令对应的目标事件。
可选地,所述将所述请求指令注册到预设的事件反应器上,并通过所述事件反应器将所述请求指令发送至任务接收方的信号队列中的步骤,包括:
创建所述请求指令对应的子通道,并将所述子通道注册到预设的事件反应器上;
当检测到所述子通道在所述事件反应器中注册完成时,生成所述请求指令对应的子任务,并通过所述子通道将所述子任务发送至任务接收方的信号队列中。
可选地,所述获取所述请求指令的报文版本信息的步骤,包括:
获取所述请求指令的报文信息的头信息;
对所述头信息进行解析,确定所述头信息中定义的各个头字段的主副版本号,得到所述请求指令的报文版本信息。
可选地,所述任务接收方中设有第一字段链表,所述第一字段链表中保存有多个字段信息以供所述任务接收方对接收的请求指令的报文信息进行解码处理,所述根据所述报文版本信息从所述任务接收方中确定解码字段的步骤,包括:
遍历所述任务接收方的第一字段链表,获取所述第一字段链表中的各个字段信息的版本信息;
将各所述字段信息的版本信息与所述报文版本信息进行比较,确定所述第一字段链表中符合预设的编解码规则的解码字段。
可选地,所述任务请求方中设有第二字段链表,所述第二字段链表中保存有多个字段信息,以供所述任务请求方对发出的请求指令的报文信息进行编码处理,所述当检测到任务请求方的请求指令时,将所述请求指令注册到预设的事件反应器上的步骤之前,还包括:
获取任务请求方与任务接收方之间配置的交互协议的版本信息,并遍历所述任务请求方的第二字段链表中的各个字段信息,获取各所述字段信息的版本信息;
将所述字段链表中的各字段信息的版本信息与所述交互协议的版本信息进行比较,确定所述第二字段链表中符合预设的编解码规则的编码字段;
根据所述编码字段对所述任务请求方发起请求指令的报文信息进行编码处理。
可选地,所述交互协议为可扩展协议,以供任务接收方与不同操作系统和/或不同语言的任务请求方进行通信交互。
可选地,所述任务处理方法还包括:
当检测到对所述交互协议进行扩展的配置指令时,根据所述配置指令在所述交互协议的配置信息中配置编解码接口信息;
根据所述编解码接口信息对所述第一字段链表和/或所述第二字段链表进行更新,在所述第一字段链表和/或所述第二字段链表中配置新增字段信息。
此外,为实现上述目的,本发明还提供一种任务处理装置,所述任务处理装置包括:
事件管理模块,用于当检测到任务请求方的请求指令时,将所述请求指令注册到预设的事件反应器上,并通过所述事件反应器将所述请求指令发送至任务接收方的信号队列中;
版本获取模块,用于对所述信号队列进行检测,当检测到所述请求指令被所述任务接收方处理时,获取所述请求指令的报文版本信息;
字段获取模块,用于根据所述报文版本信息从所述任务接收方中确定解码字段;
任务处理模块,用于根据所述解码字段对所述请求指令的报文信息进行解码处理,并根据解码后的报文信息处理所述请求指令对应的目标事件。
此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的任务处理程序,所述任务处理程序被所述处理器执行时实现如上述的任务处理方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有任务处理程序,所述任务处理程序被处理器执行时实现如上述的方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的任务处理方法的步骤。
本发明实施例提出的一种任务处理方法、装置、终端设备及存储介质。与现有技术开发框架中的任务处理方式缺少交互协议,服务升级时会对原先业务流程产生影响相比,本发明实施例中,当检测到任务请求方的请求指令时,将所述请求指令注册到预设的事件反应器上,并通过所述事件反应器将所述请求指令发送至任务接收方的信号队列中;对所述信号队列进行检测,当检测到所述请求指令被所述任务接收方处理时,获取所述请求指令的报文版本信息;根据所述报文版本信息从所述任务接收方中确定解码字段;根据所述解码字段对所述请求指令的报文信息进行解码处理,并根据解码后的报文信息处理所述请求指令对应的目标事件。通过报文版本信息确定通信交互的双方能够参与编解码的字段信息,实现对交互协议的版本控制,基于事件反应器和对交互协议的版本控制,不仅简化了请求端和服务端的对接过程,当服务升级时,只需增加新版本的交互协议,同时也能够保证基于旧版本交互协议的正常通信交互,从而不会对原先业务流程造成影响。
附图说明
图1为本发明实施例提供的终端设备一种实施方式的硬件结构示意图;
图2为本发明任务处理方法第一实施例的流程示意图;
图3为本发明任务处理方法第一实施例中的事件反应器模式示意图;
图4为本发明任务处理方法第一实施例中基于事件反应器模式的事件管理流程示意图;
图5为本发明任务处理方法第二实施例中的报文信息的结构示意图;
图6为本发明任务处理方法第二实施例中的报文头信息中的字段信息结构示意图;
图7为本发明任务处理方法第二实施例中的实例化报文信息的结构示意图;
图8至图10为本发明任务处理方法第二实施例中的基于版本控制的交互协议的编解码过程示意图;
图11为本发明任务处理装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
本发明实施例任务处理终端(又叫终端、设备或者终端设备)可以是PC,也可以是智能手机、平板电脑和便携计算机等具有数据处理和显示功能的可移动式终端设备。
如图1所示,该终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,终端还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在移动终端移动到耳边时,关闭显示屏和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;当然,移动终端还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及任务处理程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的任务处理程序,所述任务处理程序被处理器执行时实现下述实施例提供的任务处理方法中的操作。
基于上述设备硬件结构,提出了本发明任务处理方法的各个实施例。
在本发明任务处理方法各个实施例中,用到的关键技术术语主要包括:
Socket:套接字,两个网络各自通信连接中的端点,用于完成两个应用程序之间的数据传输。
物理事件:目前有两类物理事件,时间事件和网络事件。其中,时间事件是指:定时器达到指定时间时自动触发的事件;网络事件是指:某个socket上有数据到达。
任务:拥有私有事件队列,运行在一个线程上,按先后顺序串行消费队列事件,避免复杂的多线程及同步问题。
事件反应器:物理事件的管理者。当扫描探测到物理事件发生时,回调相关通道的事件响应函数。
事件通道:目前有网络事件通道与定时事件通道,隶属于一个任务,作为任务和事件反应器之间的桥梁。当检测到物理事件时会打开一个通道,通过该通道将任务注册于事件反应器上。事件反应器检测到物理事件,回调响应函数,产生系统事件,将任务挂载到对应的事件队列上。
需要说明的是,现有的libevent和ace等开发框架中,对请求任务的处理方法大多是基于事件-反应器模式的,性能高、响应快,不会被单个同步事件所阻塞,但是在任务处理过程中,请求端与服务端之间缺乏交互协议,导致请求端与服务端之间的对接复杂,当服务升级时,也会对原先业务造成影响。基于此,本发明实施例提出一种事件-反应器模式的任务处理方法,应用于服务端的开发框架中,在满足上述高性能的基础上,通过在请求端和服务端的通信中加入交互协议,简化请求端与服务端的对接过程,并且,对交互协议进行版本控制,当服务升级时,只需要新增新版本的交互协议,对旧版本的交互协议之间的通信不会产生影响,从而在服务升级时,可以保证原先业务的正常运行。
具体地,参照图2,图2为本发明任务处理方法第一实施例的流程示意图,在本发明任务处理方法的第一实施例中,所述任务处理方法包括:
步骤S10,当检测到任务请求方的请求指令时,将所述请求指令注册到预设的事件反应器上,并通过所述事件反应器将所述请求指令发送至任务接收方的信号队列中;
在本实施例中,本发明任务处理方法应用于服务端的开发框架中,该开发框架主要包括两部分,基于事件反应器模式的任务管理方法和基于版本控制的交互协议。其中,基于事件反应器模式的任务管理方法主要是指:当检测到请求方的请求指令时,将该请求指令注册到预设的事件反应器上,并通过事件反应器将请求指令发送至接收方的任务队列中等待处理。基于版本控制的交互协议主要是指:请求方和接收方之间在建立通信连接后,根据交互协议的版本进行编解码以完成对应的请求任务。可以理解的是,请求指令的发送方为请求端,请求端可以是客户端或服务器,请求指令的接收方为服务端,服务端可以是客户端或服务器。也就是说,检测到的请求指令,可以是客户端与服务器之间的物理事件,也可以是客户端与客户端之间的物理事件,还可以是服务器与服务器之间的物理事件,在此不作具体限定。以下以客户端为请求端(即任务请求方为客户端),以服务器为任务接收方为例进行说明。
进一步地,步骤S10中,将检测到的请求指令注册到预设的事件反应器上,并通过事件反应器将请求指令发送至服务端的任务队列中的细化,包括:
步骤S101,创建所述请求指令对应的子通道,并将所述子通道注册到预设的事件反应器上;
步骤S102,当检测到所述子通道在所述事件反应器中注册完成时,生成所述请求指令对应的子任务,并通过所述子通道将所述子任务发送至任务接收方的任务队列中。
在本实施例中,事件反应器模式包括两种,一种是事件反应器主动探测各个客户端是否有物理事件产生,另一种是当有客户端产生物理事件时,将产生的物理事件注册到事件反应器上。当检测到请求指令时,即检测到客户端有物理事件产生时,将该请求指令注册到事件反应器上,即将该物理事件对应的请求任务注册到事件反应器上,并通过事件反应器发送至该请求指令对应的服务端的任务队列中。具体地,各客户端在服务启动时,会创建一个监听socket,并封装在通道中注册到反应器上,反应器通过监听通道检测客户端的请求。当客户端有请求产生时,会先与服务端建立通信连接,具体地,首先连接到监听socket,反应器通过监听通道检测到客户端的通信连接请求时,调用监听socket所在的通道回调函数,产生一个信号,并将该信号挂载到服务端的信号队列中,以将客户端的请求指令对应的通信连接请求挂载到服务端的任务队列上。进一步地,当反应器检测到来自客户端的请求事件时,在服务端的任务队列下产生一个子Socket,该子socket与客户端相连。将子Socket封装到通道中形成子通道并注册至事件反应器,在子通道注册完成后,服务端的任务随即产生一个子任务,并调整子通道所属任务为新产生的子任务,反应器回调子通道中的回调函数产生信号并挂载到子任务上,从而将客户端的请求指令对应的请求事件发送到服务端的信号队列中。
具体地,参照图3,图3为本实施例中的事件反应器模式示意图,当检测到物理事件产生时,任务会打开监听通道并创建一个事件通道,即子通道,并将该子通道注册到事件反应器上。进一步地,参照图4,当客户端的请求指令对应的事件通道在事件反应器中注册完成后,事件反应器通过事件通道回调事件响应函数产生事件信号,并在服务端的任务中生成请求指令对应的子任务,然后将产生的事件信号挂载到子任务的链表下,以此将请求指令对应的请求事件发送至服务端的信号队列中。在该模式下,由事件反应器统一管理物理事件,可以节省资源。例如,事件反应器同时管理1000个网络连接socket,只需相对少的线程检查即可,若每个实例自己管理socket,就需要创建1000个线程去监视socket,且容易被单个同步事件阻塞,造成资源的严重浪费。
步骤S20,对所述信号队列进行检测,当检测到所述请求指令被所述任务接收方处理时,获取所述请求指令的报文版本信息;
进一步地,将请求指令发送至服务端的任务队列中之后,对各个服务端的任务队列进行检测,当请求指令被服务端处理时,获取请求指令的报文版本信息。客户端通过子Socket发送字节流数据,反应器检测到客户端发送的数据时,就调用子Socket所在的子通道回调函数,产生对应的信号,挂载到子任务的链表下。子任务获取信号后,开始读取字节流数据,并进行报文解码,以获取客户端的请求信息。在对客户端请求指令对应的报文信息进行解码时,首先获取报文信息的版本信息,根据报文的版本信息确定用于解码的字段,并执行解码操作。
步骤S30,根据所述报文版本信息从所述任务接收方中确定解码字段;
需要说明的是,报文的版本信息对应请求端在发起请求时,对请求指令的报文信息进行编码处理的交互协议的版本信息,服务端可以通过相同版本的交互协议对请求指令的报文信息进行解码处理,从而获取请求指令中包含的任务信息。具体地,客户端和服务端中根据交互协议设有字段链表,根据请求指令的报文版本信息,从服务端的字段链表中选取版本信息符合条件的字段作为解码字段参与对报文信息的解码处理。
步骤S40,根据所述解码字段对所述请求指令的报文信息进行解码处理,并根据解码后的报文信息处理所述请求指令对应的目标任务。
进一步地,根据从服务端的字段链表中选取的解码字段对请求指令的报文信息进行解码处理,并从解码后的报文信息中获取客户端请求的任务信息,根据该任务信息执行对应的请求任务。
在本实施例中,当检测到任务请求方的请求指令时,将所述请求指令注册到预设的事件反应器上,并通过所述事件反应器将所述请求指令发送至任务接收方的任务队列中;对所述任务队列进行检测,当检测到所述请求指令被所述任务接收方处理时,获取所述请求指令的报文版本信息;根据所述报文版本信息从所述任务接收方中确定解码字段;根据所述解码字段对所述请求指令的报文信息进行解码处理,并根据解码后的报文信息处理所述请求指令对应的目标任务。通过报文版本信息确定通信交互的双方能够参与编解码的字段信息,实现对交互协议的版本控制,基于事件反应器和对交互协议的版本控制,不仅简化了请求端和服务端的对接过程,当服务升级时,只需增加新版本的交互协议,同时也能够保证基于旧版本交互协议的正常通信交互,从而不会对原先业务流程造成影响。
进一步地,在本发明上述实施例的基础上,提出了本发明任务处理方法的第二实施例。
本实施例是第一实施例中步骤S20中,获取请求指令的报文版本信息的细化步骤,具体包括:
步骤S201,获取所述请求指令的报文信息的头信息;
步骤S202,对所述头信息进行解析,确定所述头信息中定义的各个头字段的主副版本号,得到所述请求指令的报文版本信息。
参照图5,图5是本实施例中,请求指令的报文信息的结构示意图,如图5所示,本实施例中,请求指令的报文信息的结构主要包括头信息和主体数据,其中,头信息基于交互协议产生,用于请求端和服务端之间建立通信连接并进行通信交互,主体数据用于存放请求任务信息或需要传输的数据等。
获取报文头信息,对获取的头信息进行解析,确定报文头信息中定义的各个头字段的主副版本号,得到请求指令的报文版本信息。如图5所示,在报文头信息中,包括主版本、副版本、报文头长度、报文总长度、预留区域等多个头字段,主版本和副版本为基于当前交互协议确定的版本信息,报文头长度为报文头信息的数据长度,报文总长度为包括主体数据在内的报文信息的总长度,预留区域为预留的字段区域,可供配置额外的字段信息。进一步地,参照图6,图6为报文头信息中定义的各个字段信息的结构示意图,在报文头信息中定义的各个字段,均包含有相应的版本信息,其中,字段值中保存的是主版本和副版本的版本号的值。报文头信息中的每个字段必须包含三个属性:主版本号、副版本号、字段值(保存字段真实值)。实例化字段信息时,主副版本号必须赋值,不可或缺。
更进一步地,参照图7,在对报文头信息中各个字段的版本号赋值,对报文信息进行实例化后,报文信息的结构示意图如图7所示,每个字段都包含有对应的版本信息,以及字段值,在获取报文版本信息时,需要获取头信息中定义的各个头字段的版本信息,从而得到请求指令的报文版本信息。
进一步地,上述实施例中,步骤S10之前,还包括:
步骤S01,获取任务请求方与任务接收方之间配置的交互协议的版本信息,并遍历所述任务请求方的第二字段链表中的各个字段信息,获取各所述字段信息的主副版本号,其中,所述交互协议的版本信息包括主副版本号;
步骤S02,将所述字段链表中的各字段信息的版本信息与所述交互协议的版本信息进行比较,确定所述第二字段链表中符合预设的编解码规则的编码字段;
步骤S03,根据所述编码字段对所述任务请求方发起请求指令的报文信息进行编码处理。
基于上述实施例,服务端和请求端的报文中均包含字段链表,服务端中的字段链表保存有多个字段信息,可供服务端对接收到的请求指令的报文信息进行解码处理,请求端的字段链表中也保存有多个字段信息,以供客户端在发起请求时,对请求指令的报文信息进行编码处理。具体地,在请求端发起请求之前,需要根据交互协议的配置信息获取与服务端当前的交互协议的版本信息,并遍历请求端的字段链表中的各个字段信息,获取各个字段信息的版本信息,将各字段信息的版本信息与交互协议的版本信息进行比较,从而可以确定请求端的字段链表中,符合预设的编解码规则可以参与请求端编码处理的编码字段。具体地,各字段信息的版本信息包括主副版本号,交互协议的版本信息也包括主副版本号,预设的编解码规则的一种较优的实施方式为:字段信息的版本信息中的主版本号低于交互协议的主版本号时,对应的字段信息符合编解码规则,可以参与编解码处理,字段信息的主版本号与交互协议的主版本号相同,且字段信息的副版本号低于或等于交互协议的副版本号时,对应的字段信息符合编解码规则,可以参与编解码处理。遍历请求端字段链表中的各个字段信息,跳过不符合编解码规则的字段信息,对符合编解码规则的各个字段信息按顺序逐个进行编码处理,得到对应的请求指令的报文信息。
进一步地,步骤S30的细化,包括:
步骤S301,遍历所述任务接收方的第一字段链表,获取所述第一字段链表中的各个字段信息的版本信息;
步骤S302,将各所述字段信息的版本信息与所述报文版本信息进行比较,确定所述第一字段链表中符合预设的编解码规则的解码字段。
服务端的报文中也包括字段链表,该字段链表中保存的多个字段信息可供服务端对接收到的请求指令的报文信息进行解码处理,具体地,遍历服务端的字段链表中的各个字段信息,获取各个字段信息的版本信息,该版本信息包括主版本号和副版本号,将服务端字段链表中的各个字段信息的版本信息与请求指令的报文版本信息进行比较,确定服务端的字段链表中,符合预设的编解码规则的解码字段。其中,服务端参与解码处理的解码字段的编解码规则可以与上述请求端的编解码规则的实施方式相同,也可以不同,例如,服务端符合编解码规则的解码字段的版本信息中,主副版本号都与请求指令的报文版本信息的主副版本号保持一致等,在此不作具体限定。
进一步地,本实施例中,基于版本控制的交互协议为可扩展协议,可以支持服务端与不同操作系统和/或不同语言的请求端进行通信交互,其中,不同语言包括程序开发语言和自然语言。具体地,对交互协议的扩展方式包括以下步骤:
步骤S501,当检测到对所述交互协议进行扩展的配置指令时,根据所述配置指令在所述交互协议的配置信息中配置编解码接口信息;
步骤S502,根据所述编解码接口信息对所述第一字段链表和/或所述第二字段链表进行更新,在所述第一字段链表和/或所述第二字段链表中配置新增字段信息。
当检测到对交互协议进行扩展的配置指令时,根据检测到的配置指令在交互协议的配置信息中配置编解码的接口信息,根据配置的编解码的接口信息对请求端和/或服务端的报文的字段链表进行更新,通过派生类在字段链表中配置新增字段即可实现接口,从而实现协议扩展。
即扩展报文时,只要新增一个高本版字段即可保持兼容,具体地,参照图8至图10所示的示意图,其中,图8至图10中的左图为请求端的报文结构示意图,右图为服务端的报文结构示意图,在图8中,请求端与服务端的报文版本信息一致,可保持正常交互。当服务升级时,请求方与服务方的报文字段链表不一定是同步更新的,因此,可能出现图9和图10所示的情况。图9是服务端率先更新的情况,在服务端报文字段链表中配置了一个新增字段,该新增字段的版本为3.3,当服务端率先更新时,接收到请求端的报文,解析出请求端中字段链表中赋值的版本号值,低于新增字段的版本号,新增字段不参与解码,不影响原先业务流程。具体地,当服务端收到报文时,按顺序首先解码报文版本字段,主版本号为3,副版本号为2,即接收到的报文版本号为3.2。当服务端使用3.2版本解码时,新增字段不参与解码,因此通讯交互保持兼容。进一步地,如图10所示,当请求端率先更新时,请求端报文的字段链表配置了新增字段,新增字段的版本为3.3,请求端在更新了报文的字段链表后,根据与服务端的交互协议的配置信息,依然按照主版本号为3,副版本号为2的版本信息进行编码,并将编码后的报文信息发送给服务端,此时,由于请求端的新增字段版本高于当前交互协议的版本,因此,新增字段不参与请求端的编码,服务端接收到的报文与更新之前一致,因此通讯交互可以保持兼容。在请求端率先更新交互协议时,根据交互协议的配置信息,仍然按照原先版本的交互协议进行编码,新增高版本字段不参与编码,发送给服务端时,可以保证与服务端报文的结构一致,不影响原先的业务流程。
进一步地,基于上述实施例中的事件反应器模式和版本控制的交互协议的任务处理方法所实现的开发框架,具备更好的跨平台能力,在该框架中声明了统一的操作方法,向开发人员提供不同操作系统统一的线程、互斥锁、信号量、网络等服务,实现跨平台开发。比如对线程的操作封装在同一个线程类中,开发人员无须调用各操作系统线程相关的API接口,直接调用框架中封装好的线程类,即可实现创建、启动、终止、销毁线程等操作。在实现跨平台运行时,只需要将源码在不同操作系统环境下重新编译即可。一般地,使用操作系统的宏作为标识符,针对不同操作系统在编译时,通过指定宏定义控制源程序的编译。当需要扩展新平台时,重写相关接口,新增宏标识,实现该平台的代码即可。
在本实施例中,通过对请求端和服务端的交互协议的版本控制,使请求端和服务端通信报文的版本信息保持一致,从而在服务升级时,也能够保证请求端和服务端的正常通信,不会对原先业务产生影响。进一步地,请求端和服务端之间的交互协议为可扩展协议,通过新增高版本字段实现协议扩展,可灵活控制请求端和服务端的报文中参与编解码的字段信息,从而保证通信交互的兼容性。更进一步地,基于事件反应器模式和版本控制的交互协议的任务处理方法所实现的开发框架,通过声明统一的操作方法、抽象统一接口,提高了框架的跨平台能力。
此外,参照图11,本发明实施例还提出一种任务处理装置,所述任务处理装置包括:
事件管理模块10,用于当检测到任务请求方的请求指令时,将所述请求指令注册到预设的事件反应器上,并通过所述事件反应器将所述请求指令发送至任务接收方的信号队列中;
版本获取模块20,用于对所述信号队列进行检测,当检测到所述请求指令被所述任务接收方处理时,获取所述请求指令的报文版本信息;
字段获取模块30,用于根据所述报文版本信息从所述任务接收方中确定解码字段;
任务处理模块40,用于根据所述解码字段对所述请求指令的报文信息进行解码处理,并根据解码后的报文信息处理所述请求指令对应的目标事件。
可选地,所述事件管理模块10,还用于:
创建所述请求指令对应的子通道,通过所述临时通道将所述请求指令注册到预设的事件反应器上;
当检测到所述子通道在所述事件反应器中注册完成时,生成所述请求指令对应的子任务,并通过所述子通道将所述子任务发送至任务接收方的信号队列中。
可选地,所述版本获取模块20,还用于:
获取所述请求指令的报文信息的头信息;
对所述头信息进行解析,确定所述头信息中定义的各个头字段的主副版本号,得到所述请求指令的报文版本信息。
可选地,所述字段获取模块30,还用于:
遍历所述任务接收方的第一字段链表,获取所述第一字段链表中的各个字段信息的版本信息;
将各所述字段信息的版本信息与所述报文版本信息进行比较,确定所述第一字段链表中符合预设的编解码规则的解码字段。
可选地,所述任务处理装置还包括编码模块,用于:
获取任务请求方与任务接收方之间配置的交互协议的版本信息,并遍历所述任务请求方的第二字段链表中的各个字段信息,获取各所述字段信息的版本信息;
将所述字段链表中的各字段信息的版本信息与所述交互协议的版本信息进行比较,确定所述第二字段链表中符合预设的编解码规则的编码字段;
根据所述编码字段对所述任务请求方发起请求指令的报文信息进行编码处理。
可选地,所述交互协议为可扩展协议,以供任务接收方与不同操作系统和/或不同语言的任务请求方进行通信交互,所述任务处理装置还包括协议扩展模块,用于:
当检测到对所述交互协议进行扩展的配置指令时,根据所述配置指令在所述交互协议的配置信息中配置编解码接口信息;
根据所述编解码接口信息对所述第一字段链表和/或所述第二字段链表进行更新,在所述第一字段链表和/或所述第二字段链表中配置新增字段信息。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有任务处理程序,所述任务处理程序被处理器执行时实现上述实施例提供的任务处理方法中的操作。
此外,本发明实施例还提出一种计算机程序产品,包括计算机程序,所述计算机被处理器执行时实现上述实施例提供的任务处理方法中的操作。
本发明设备、计算机程序产品和计算机可读存储介质各实施例,均可参照本发明任务处理方法各个实施例,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体/操作/对象与另一个实体/操作/对象区分开来,而不一定要求或者暗示这些实体/操作/对象之间存在任何这种实际的关系或者顺序;术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的任务处理方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种任务处理方法,其特征在于,所述任务处理方法包括以下步骤:
当检测到任务请求方的请求指令时,将所述请求指令注册到预设的事件反应器上,并通过所述事件反应器将所述请求指令发送至任务接收方的信号队列中;
对所述信号队列进行检测,当检测到所述请求指令被所述任务接收方处理时,获取所述请求指令的报文版本信息;
根据所述报文版本信息从所述任务接收方中确定解码字段;
根据所述解码字段对所述请求指令的报文信息进行解码处理,并根据解码后的报文信息处理所述请求指令对应的目标事件。
2.如权利要求1所述的任务处理方法,其特征在于,所述将所述请求指令注册到预设的事件反应器上,并通过所述事件反应器将所述请求指令发送至任务接收方的信号队列中的步骤,包括:
创建所述请求指令对应的子通道,并将所述子通道注册到预设的事件反应器上;
当检测到所述子通道在所述事件反应器中注册完成时,生成所述请求指令对应的子任务,并通过所述子通道将所述子任务发送至任务接收方的信号队列中。
3.如权利要求1所述的任务处理方法,其特征在于,所述获取所述请求指令的报文版本信息的步骤,包括:
获取所述请求指令的报文信息的头信息;
对所述头信息进行解析,确定所述头信息中定义的各个头字段的主副版本号,得到所述请求指令的报文版本信息。
4.如权利要求3所述的任务处理方法,其特征在于,所述任务接收方中设有第一字段链表,所述第一字段链表中保存有多个字段信息以供所述任务接收方对接收的请求指令的报文信息进行解码处理,所述根据所述报文版本信息从所述任务接收方中确定解码字段的步骤,包括:
遍历所述任务接收方的第一字段链表,获取所述第一字段链表中的各个字段信息的版本信息;
将各所述字段信息的版本信息与所述报文版本信息进行比较,确定所述第一字段链表中符合预设的编解码规则的解码字段。
5.如权利要求1所述的任务处理方法,其特征在于,所述任务请求方中设有第二字段链表,所述第二字段链表中保存有多个字段信息,以供所述任务请求方对发出的请求指令的报文信息进行编码处理,所述当检测到任务请求方的请求指令时,将所述请求指令注册到预设的事件反应器上的步骤之前,还包括:
获取任务请求方与任务接收方之间配置的交互协议的版本信息,并遍历所述任务请求方的第二字段链表中的各个字段信息,获取各所述字段信息的版本信息;
将所述字段链表中的各字段信息的版本信息与所述交互协议的版本信息进行比较,确定所述第二字段链表中符合预设的编解码规则的编码字段;
根据所述编码字段对所述任务请求方发起请求指令的报文信息进行编码处理。
6.如权利要求5所述的任务处理方法,其特征在于,所述交互协议为可扩展协议,以供任务接收方与不同操作系统和/或不同语言的任务请求方进行通信交互。
7.如权利要求6所述的任务处理方法,其特征在于,所述任务处理方法还包括:
当检测到对所述交互协议进行扩展的配置指令时,根据所述配置指令在所述交互协议的配置信息中配置编解码接口信息;
根据所述编解码接口信息对所述第一字段链表和/或所述第二字段链表进行更新,在所述第一字段链表和/或所述第二字段链表中配置新增字段信息。
8.一种任务处理装置,其特征在于,所述任务处理装置包括:
事件管理模块,用于当检测到任务请求方的请求指令时,将所述请求指令注册到预设的事件反应器上,并通过所述事件反应器将所述请求指令发送至任务接收方的信号队列中;
版本获取模块,用于对所述信号队列进行检测,当检测到所述请求指令被所述任务接收方处理时,获取所述请求指令的报文版本信息;
字段获取模块,用于根据所述报文版本信息从所述任务接收方中确定解码字段;
任务处理模块,用于根据所述解码字段对所述请求指令的报文信息进行解码处理,并根据解码后的报文信息处理所述请求指令对应的目标事件。
9.一种终端设备,其特征在于,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的任务处理程序,所述任务处理程序被所述处理器执行时实现如权利要求1至7中任一项所述的任务处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有任务处理程序,所述任务处理程序被处理器执行时实现如权利要求1至7中任一项所述的任务处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111132755.3A CN113852635B (zh) | 2021-09-26 | 2021-09-26 | 任务处理方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111132755.3A CN113852635B (zh) | 2021-09-26 | 2021-09-26 | 任务处理方法、装置、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113852635A true CN113852635A (zh) | 2021-12-28 |
CN113852635B CN113852635B (zh) | 2024-05-28 |
Family
ID=78980471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111132755.3A Active CN113852635B (zh) | 2021-09-26 | 2021-09-26 | 任务处理方法、装置、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113852635B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101572658A (zh) * | 2008-04-29 | 2009-11-04 | 华为技术有限公司 | 无线中继报文传输的处理方法、装置和系统 |
CN104754066A (zh) * | 2013-12-26 | 2015-07-01 | 华为技术有限公司 | 一种报文处理方法和报文处理设备 |
CN105871521A (zh) * | 2016-06-03 | 2016-08-17 | 浙江宇视科技有限公司 | 一种数据传输方法、装置及视频监控系统 |
CN106161537A (zh) * | 2015-04-10 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 远程过程调用的处理方法、装置、系统及电子设备 |
CN106648940A (zh) * | 2017-03-13 | 2017-05-10 | 北京百悟科技有限公司 | 远程过程调用方法及装置 |
CN108063713A (zh) * | 2016-11-09 | 2018-05-22 | 北京国双科技有限公司 | 一种网络请求的处理方法及装置 |
CN109067754A (zh) * | 2018-08-17 | 2018-12-21 | 武汉精测电子集团股份有限公司 | 一种请求端与服务端的通信方法及系统 |
CN109639701A (zh) * | 2018-12-25 | 2019-04-16 | 杭州迪普科技股份有限公司 | 基于opc协议的访问控制方法、装置、设备及存储介质 |
CN109672669A (zh) * | 2018-12-03 | 2019-04-23 | 国家计算机网络与信息安全管理中心 | 流量报文的过滤方法及装置 |
CN111225018A (zh) * | 2019-10-23 | 2020-06-02 | 上海艾融软件股份有限公司 | 一种请求报文处理方法、装置和电子设备 |
CN111478900A (zh) * | 2020-04-07 | 2020-07-31 | 中国民航信息网络股份有限公司 | 一种数据处理方法及系统 |
CN112532564A (zh) * | 2019-09-17 | 2021-03-19 | 中国移动通信集团广东有限公司 | 业务调用方法、装置及电子设备 |
-
2021
- 2021-09-26 CN CN202111132755.3A patent/CN113852635B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101572658A (zh) * | 2008-04-29 | 2009-11-04 | 华为技术有限公司 | 无线中继报文传输的处理方法、装置和系统 |
CN104754066A (zh) * | 2013-12-26 | 2015-07-01 | 华为技术有限公司 | 一种报文处理方法和报文处理设备 |
CN106161537A (zh) * | 2015-04-10 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 远程过程调用的处理方法、装置、系统及电子设备 |
CN105871521A (zh) * | 2016-06-03 | 2016-08-17 | 浙江宇视科技有限公司 | 一种数据传输方法、装置及视频监控系统 |
CN108063713A (zh) * | 2016-11-09 | 2018-05-22 | 北京国双科技有限公司 | 一种网络请求的处理方法及装置 |
CN106648940A (zh) * | 2017-03-13 | 2017-05-10 | 北京百悟科技有限公司 | 远程过程调用方法及装置 |
CN109067754A (zh) * | 2018-08-17 | 2018-12-21 | 武汉精测电子集团股份有限公司 | 一种请求端与服务端的通信方法及系统 |
CN109672669A (zh) * | 2018-12-03 | 2019-04-23 | 国家计算机网络与信息安全管理中心 | 流量报文的过滤方法及装置 |
CN109639701A (zh) * | 2018-12-25 | 2019-04-16 | 杭州迪普科技股份有限公司 | 基于opc协议的访问控制方法、装置、设备及存储介质 |
CN112532564A (zh) * | 2019-09-17 | 2021-03-19 | 中国移动通信集团广东有限公司 | 业务调用方法、装置及电子设备 |
CN111225018A (zh) * | 2019-10-23 | 2020-06-02 | 上海艾融软件股份有限公司 | 一种请求报文处理方法、装置和电子设备 |
CN111478900A (zh) * | 2020-04-07 | 2020-07-31 | 中国民航信息网络股份有限公司 | 一种数据处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113852635B (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107979508B (zh) | 微服务测试方法及装置 | |
RU2554570C2 (ru) | Способ и система выполнения услуг на сервере и клиенте клиент-серверной архитектуры | |
CN112332997B (zh) | 终端设备的配网方法、终端设备及计算机可读存储介质 | |
CN110753129A (zh) | 消息传输方法、系统、装置、设备及计算机可读存储介质 | |
WO2023024435A1 (zh) | 设备注册方法及装置、电子设备、存储介质和计算机程序产品 | |
CN109828830B (zh) | 用于管理容器的方法和装置 | |
CN113168332B (zh) | 数据处理方法、装置以及移动终端 | |
CN109683992B (zh) | 用于管理对象的方法和装置 | |
CN113254217A (zh) | 业务的消息处理方法、装置及电子设备 | |
JP2005228183A (ja) | プログラム実行方法、および、プログラム実行のための計算機システム | |
CN112073488A (zh) | 处理请求的方法及装置 | |
CN113852635B (zh) | 任务处理方法、装置、终端设备及存储介质 | |
CN116755788A (zh) | 一种线上规则修改方法、装置、设备及存储介质 | |
CN115550498A (zh) | 投屏方法、装置、设备和存储介质 | |
CN114449030A (zh) | 一种互联网服务系统、方法、电子设备及存储介质 | |
CN111988357B (zh) | 一种任务处理方法、电子设备、云服务器及系统 | |
CN114726905A (zh) | 一种Tbox网络接入Android系统的方法、装置、设备及存储介质 | |
CN113891441A (zh) | 网络连接方法、装置和电子设备 | |
CN109660585B (zh) | Aop增强对象服务的调用方法、装置、设备及存储介质 | |
CN109669679B (zh) | 服务检测及处理方法、装置及电子设备 | |
KR101254208B1 (ko) | 이동 단말기의 애플리케이션 실시간 업데이트 방법 | |
CN106970884B (zh) | 应用于安卓系统运行层处理串口命令的方法及装置 | |
CN107463438B (zh) | 用于多Openstack环境的信息处理方法、装置和系统 | |
CN117076160B (zh) | 组件调用方法、装置、设备和存储介质 | |
CN114125048B (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 | ||
GR01 | Patent grant |