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

一种消息传输方法、装置、介质与流程

2022-02-26 00:14:04 来源:中国专利 TAG:


1.本技术涉及计算机网络领域,特别是涉及一种消息传输方法、装置、介质。


背景技术:

2.在服务器运行过程中,服务器与用户间或服务器内运行的各进程间需要通过消息传递的方式来进行数据传输。通常各进程需要将待发送的各信息元素组装后生成消息并将消息发送至消息服务进程,再由消息服务进程进一步将消息发送至目标进程。由于将信息元素组装成消息的过程过于繁琐,当存在较多信息元素时,会大量占用服务器的计算资源,从而影响进程的正常工作。
3.由此可见,如何提出一种更简单高效的消息传输方法,是本领域技术人员亟需解决的问题。


技术实现要素:

4.本技术的目的是提供一种消息传输方法、装置、介质,以简化进程发送消息的流程,使消息传输更简单高效。
5.为解决上述技术问题,本技术提供一种消息传输方法,包括:
6.判断是否接收到进程所发送的消息包,所述消息包至少包括消息参数和消息配置标识;
7.若获取到所述消息包,自消息配置表获取与所述消息配置标识对应的内容模板,所述消息配置表用于保存已注册的各所述进程所对应的所述内容模板;
8.根据所述内容模板和所述消息参数生成消息;
9.获取目标进程的信息,将所述消息发送至所述目标进程。
10.优选的,还包括:
11.当检测到未注册的所述进程时,配置所述进程的所述消息配置表以完成注册。
12.优选的,所述将所述消息发送至所述目标进程包括:
13.获取所述进程的消息开关的配置信息,判断所述消息开关是否开启,所述消息开关包括:前台消息开关、后台消息开关、短信消息开关;
14.若所述前台消息开关开启,则发送前台消息;
15.若所述后台消息开关开启,则发送后台消息;
16.若所述短信消息开关开启,则发送短信消息。
17.优选的,所述获取目标进程的信息包括:
18.判断所述消息包中是否包含所述目标进程的信息;
19.若不包含所述目标进程的信息,则调用预设接口以获取所述目标进程的信息。
20.优选的,所述根据所述内容模板和所述消息参数生成消息的步骤后,还包括:
21.生成与所述消息对应的消息id,并将所述消息id发送至发送所述消息包的进程。
22.优选的,所述生成与所述消息对应的消息id的步骤后,还包括:
23.将所述消息存储于所述目标进程的信息所对应的消息数据库内的与所述消息id所对应的表内。
24.优选的,所述将所述消息发送至所述目标进程包括:
25.判断所述历史数据库中是否存在所述消息的所述消息id,所述历史数据库用于记录已发送的所述消息的所述消息id;
26.若存在所述消息id,则停止发送所述消息;
27.若不存在所述消息id,则将所述消息发送至所述目标进程。
28.为解决上述技术问题,本技术还提供一种消息传输装置,包括:
29.判断模块,用于判断是否接收到进程所发送的消息包,所述消息包至少包括消息参数和消息配置标识;
30.获取模块,用于若获取到所述消息包,自消息配置表获取与所述消息配置标识对应的内容模板,所述消息配置表用于保存已注册的各所述进程所对应的所述内容模板;
31.生成模块,用于根据所述内容模板和所述消息参数生成消息;
32.发送模块,用于获取目标进程的信息,将所述消息发送至所述目标进程。
33.为解决上述技术问题,本技术还提供另一种消息传输装置,包括存储器,用于存储计算机程序;
34.处理器,用于执行所述计算机程序时实现所述的消息传输方法的步骤。
35.为解决上述技术问题,本技术还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的消息传输方法的步骤。
36.本技术所提供的消息传输方法,包括:消息服务进程判断是否接收到进程所发送的消息包,消息包至少包括消息参数和消息配置标识,各进程不需要组装消息参数以生成消息,提高进程的执行速度。若获取到消息包,自消息配置表获取与消息配置标识对应的内容模板,消息配置表用于保存已注册的各进程所对应的内容模板,并根据内容模板和消息参数生成消息,通过消息服务进程统一组装消息参数以生成消息,并获取目标进程的信息,将消息发送至目标进程,使消息传输过程更加简单高效,提高消息的处理速度,进而提高工作效率。
37.此外,本技术还提供了一种消息传输装置、介质,与上述方法对应,效果同上。
附图说明
38.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
39.图1为本技术实施例所提供的一种消息传输方法的应用场景示意图;
40.图2为本技术实施例所提供的一种消息传输方法的流程图;
41.图3为本技术实施例所提供的一种消息传输装置的结构图;
42.图4为本技术实施例所提供的另一种消息传输装置的结构图。
具体实施方式
43.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本技术保护范围。
44.本技术的核心是提供一种消息传输方法、装置、介质。
45.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式对本技术作进一步的详细说明。
46.图1为本技术实施例所提供的一种消息传输方法的应用场景示意图,如图1所示,在本技术所提供的消息传输方法的应用场景中,服务器内会同时运行多个进程,各进程间需要通过消息传递的方式来进行数据传输,若由各进程分别将消息参数组装成消息发送至消息服务进程,会增加各进程所消耗的计算资源,影响进程工作效率,因此可以由消息服务进程统一将消息参数组装为消息。需要发送信息的进程将包含消息参数和消息配置标识的消息包发送至消息服务进程,消息服务进程获取到消息包后,对消息包进行解析,获取与消息配置标识对应的内容模板,以根据内容模板和消息参数生成消息,将生成的消息发送至目标进程,以实现数据传输功能。
47.图2为本技术实施例所提供的一种消息传输方法的流程图,如图2所示,本技术提供的消息传输方法包括:
48.s10:判断是否接收到进程所发送的消息包,消息包至少包括消息参数和消息配置标识。
49.在具体实施中,当某一进程需要将消息发送至其他进程以传输数据时,需要将包含消息参数和消息配置标识的消息包发送至消息服务进程。其中,消息包可以为数据包的形式,例如:由发送消息的进程将消息打包为文件的形式后发送至消息服务进程;也可以通过键对值形式将消息参数和消息配置标识发送至消息服务器进程,在这种情况下,消息服务进程可以利用属性接受获取相应数据,也可以用对象直接接受数据;也可以将消息参数和消息配置标识转化为字符串的形式,通过字符串向消息服务进程提供数据;或创建消息对象并将消息对象发送至消息服务进程以提供数据。
50.可以理解的是,消息配置标识为用于区分消息的应用场景的标识,消息参数为消息中的有效信息,例如:若消息为“2021年10月1日”,则“2021”“10”“1”为消息参数,该消息的消息配置标识为“日期”或其他代表日期的标识。
51.由于消息服务进程需要同时处理多个其他进程发送的消息,不同进程所发送的消息的类型不同,因此,需要对获取到的消息包进行验证,确定其中是否包含消息参数和消息配置标识,若不包含则将直接对消息进行转发操作,无需对消息参数进行组装。可以理解的是,由于验证消息包中是否包含消息参数和消息配置标识的操作过于繁琐,会造成计算资源的浪费,为解决这一问题,还可以为包含消息参数和消息配置标识的消息包添加特定标识,以简化验证过程。
52.s11:若获取到消息包,自消息配置表获取与消息配置标识对应的内容模板,消息配置表用于保存已注册的各进程所对应的内容模板。
53.在具体实施中,获取到包含消息参数和消息配置标识的消息包后,对消息包进行
解析以获取消息参数和消息配置标识,并根据消息配置标识从消息配置表中获取相应的内容模板。
54.需要注意的是,为了保证各进程向消息服务进程发送消息包后均能够获取相应的目标模板,当存在未注册的新接入消息服务的进程时,需要先在消息服务进程中对该进程进行注册,生成与该进程对应的内容模板,并生成与该消息的应用场景对应的唯一消息配置标识。例如:若消息配置标识为“日期”,则获取日期所对应的模板“xx年xx月xx日”,以便于后续的组装工作。可以理解的是,进程在消息服务进程中注册的参数和消息配置标识保存在数据库中,可以通过修改数据库的方式更新相应参数。
55.s12:根据内容模板和消息参数生成消息。
56.在具体实施中,根据消息配置标识获取内容模板后,还需要根据内容模板将消息参数组装为消息。可以理解的是,部分消息并不具有可变参数,其消息内容是固定的,因此若消息参数为空,则直接将内容模板作为消息内容;若消息参数不为空,则利用消息参数替换内容模板中的内容,以生成完整消息。
57.s13:获取目标进程的信息,将消息发送至目标进程。
58.消息服务进程获取完整消息后,还需要获取目标进程的相关信息,才能够实现将消息发送至目标进程的任务。在具体实施中,进程发送的消息包中可以包含目标进程的信息,也可以不包含,此处不做限定。若消息包中包含目标进程的信息,则将消息发送至该目标进程;若消息包中未包含目标进程的信息,则调用预设接口获取目标进程的信息,将消息发送至目标进程;若获取目标进程信息失败,则向管理人员发出警报。
59.在具体实施中,消息服务进程发送的消息类型包括:前台消息、后台消息、短信消息、h5消息等,根据消息配置标识获取内容模板时,还需要判断消息配置标识在消息服务开关表中的消息开关是否开启,若前台消息开关开启,则发送前台消息;若后台消息开关开启,则发送后台消息;若短信消息开关开启,则发送短信消息。
60.需要注意的是,为了能够查看某一消息的发送进程和处理进程,根据内容模板和消息参数生成消息后,还需要生成与消息对应的消息身份标识号(identity document,id),并将消息id返回至发送消息包的进程,使该进程能够根据消息id查看该消息的进程。
61.进一步的,为了避免消息重复发送,还需要将已发送至目标进程的消息保存至历史数据库总,在发送某一消息前,还需要判断历史数据库中是否存在该消息id,若存在该消息id,则停止发送消息,若不存在该消息id,则将消息发送至目标进程。
62.可以理解的是,消息服务进程通过消息队列将消息发送至目标进程,当消息服务进程生成的消息过多时,消息发送量过大会引起服务器崩溃。因此需要将无法及时发送至目标进程的消息暂时存储。为了增大服务器的存储能力,提高消息服务进程应对大量且高并发数据,采用分库分表的形式存储消息,即将消息存储于目标进程的信息所对应的消息数据库内的与消息id所对应的表内。
63.本技术提供了一种消息传输方法,该方法包括:消息服务进程判断是否接收到进程所发送的消息包,消息包至少包括消息参数和消息配置标识,各进程不需要组装消息参数以生成消息,提高进程的执行速度。若获取到消息包,自消息配置表获取与消息配置标识对应的内容模板,消息配置表用于保存已注册的各进程所对应的内容模板,并根据内容模板和消息参数生成消息,通过消息服务进程统一组装消息参数以生成消息,并获取目标进
程的信息,将消息发送至目标进程,使消息传输过程更加简单高效,提高消息的处理速度,进而提高工作效率。
64.在具体实施中,若系统中存在新生成的进程,且该消息服务进程为储存该进程的内容模板、服务消息开关表等信息,当该进程向消息服务进程发送消息参数时,消息服务进程无法将消息参数组装成为消息,将会影响进程的正常工作。
65.在上述实施例的基础上,上述消息传输方法还包括:
66.当检测到未注册的进程时,配置进程的消息配置表以完成注册。
67.可以理解的是,当进程在消息服务进程中注册时,需要配置该进程的消息配置表,包括该进程在不同场景下的消息内容模板和消息服务开关(例如前台消息、h5消息、后台消息、短信消息等)。完成配置后,将消息配置表保存至数据库中,管理人员可以通过修改数据库中的数据以修改消息配置表。
68.在本实施例中,通过为未注册的进程配置消息配置表,使新生成的进程也能够通过向消息服务进程发送消息参数实现消息传输,保证进程的正常工作。
69.在具体实施中,消息服务进程向目标进程发送的消息类型多种多样,例如前台消息、h5消息、后台消息、短信消息等,应根据进程和消息的类型选择相应的消息类型,以更好的完成数据传输的任务。为了确定消息类型,在根据消息配置标识获取内容模板时,还需要判断消息配置标识在消息服务开关表中的消息开关是否开启。
70.在上述实施例的基础上,将消息发送至目标进程包括:
71.获取进程的消息开关的配置信息,判断消息开关是否开启,消息开关包括:前台消息开关、后台消息开关、短信消息开关;
72.若前台消息开关开启,则发送前台消息;
73.若后台消息开关开启,则发送后台消息;
74.若短信消息开关开启,则发送短信消息。
75.需要注意的是,消息服务进程中可用的消息类型支持扩展,可以根据实际需要增加push消息、小程序消息等类型。
76.在本实施例中,通过获取进程的消息开关的配置信息,向目标进程发送相应类型的消息,防止由于消息类型不匹配导致目标进程接收消息失败,影响进程的正常工作。
77.在具体实施中,将消息发送至目标进程前,还需要获取目标进程的相关信息。
78.在上述实施例的基础上,获取目标进程的信息包括:
79.判断消息包中是否包含目标进程的信息;
80.若不包含目标进程的信息,则调用预设接口以获取目标进程的信息。
81.若消息包中包含目标进程的信息,则将消息发送至该目标进程;若消息包中未包含目标进程的信息,则调用预设接口获取目标进程的信息,将消息发送至目标进程;若获取目标进程信息失败,则向管理人员发出警报。其中,预设接口为发送消息包的进程与消息服务进程预先约定的接口,消息服务进程异步的调用该接口获取目标进程的信息,以进行消息发送。
82.可以理解的是,调用预设接口的方式可以进一步减小消息包中的数据量,从而使进程发送消息的过程更加简化。
83.在本实施例中,通过解析消息包或调用预设接口的方式获取目标进程的信息,以
将消息发送至目标进程,保证各进程能够正常运行。
84.在具体实施中,发送消息包的进程或其他管理进程可能需要查看该消息的发送情况或处理情况,以便掌握进程运行情况或处理故障信息。
85.在上述实施例的基础上,根据内容模板和消息参数生成消息后,还需要生成与消息对应的消息id,并将消息id返回至发送消息包的进程,使该进程能够根据消息id查看该消息的处理情况。
86.在本实施例中,通过生成与消息对应的消息id,并将消息id返回至发送消息包的进程,从而方便相关进程消息运行情况或处理故障信息。
87.在具体实施中,由于消息服务进程需要处理大量进程所发送的消息包,当数据量过大时,可能会导致服务器崩溃。
88.为防止因消息量过多而导致服务器崩溃,在上述实施例的基础上,生成与消息对应的消息id的步骤后,还包括:
89.将消息存储于目标进程的信息所对应的消息数据库内的与消息id所对应的表内。
90.可以理解的是,消息服务进程通过消息队列发送消息,创建和处理消息的终端节点将与队列进行交互,以减少并发数据量。创建进程可以将请求添加到队列中,无需再等待这些请求接受处理,如果消息发送失败,也可使用重试机制重新发送该消息。
91.消息服务进程还采用了sharding-jdbc技术以实现将消息分库分表保存,分库分表使用了,用于应对大数据量和高并发的情况,该技术可支持数据分片,读写分离,分布式事物等功能。
92.在本实施例中,通过将消息存储于目标进程的信息所对应的消息数据库内的与消息id所对应的表内,提高消息服务进程处理消息的能力,防止因消息量过多而导致服务器崩溃。
93.需要注意的是,为了避免消息重复发送,还需要将已发送至目标进程的消息保存至历史数据库中,在发送某一消息前,还需要判断历史数据库中是否存在该消息id,若存在该消息id,则停止发送消息,若不存在该消息id,则将消息发送至目标进程。
94.在具体实施中,该方案使用远程字典服务(remote dictionary server,redis)缓存对同一个消息id进行去重拦截。若存在多个消息id相同的消息,则消息服务进程认为这些消息为同一条消息。为了防止同一条消息发送两次,所以将一条消息生成的消息id放入redis缓存中,在消费的时候查询redis缓存中是否存在该消息id,若存在该消息id,则不发送该消息,若不存在该消息id,则则将消息发送至目标进程。
95.在本实施例中,将已发送至目标进程的消息保存至历史数据库,并在发送消息前判断历史数据库中是否存在该消息id,防止消息重复发送,减少计算资源的浪费。
96.在上述实施例中,对于消息传输方法进行了详细描述,本技术还提供消息传输装置对应的实施例。需要说明的是,本技术从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。
97.由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
98.图3为本技术实施例所提供的一种消息传输装置的结构图,如图3所示,一种消息传输装置包括:
99.判断模块10,用于判断是否接收到进程所发送的消息包,消息包至少包括消息参数和消息配置标识;
100.获取模块11,用于若获取到消息包,自消息配置表获取与消息配置标识对应的内容模板,消息配置表用于保存已注册的各进程所对应的内容模板;
101.生成模块12,用于根据内容模板和消息参数生成消息;
102.发送模块13,用于获取目标进程的信息,将消息发送至目标进程。
103.本技术提供了一种消息传输装置,包括:消息服务进程判断是否接收到进程所发送的消息包,消息包至少包括消息参数和消息配置标识,各进程不需要组装消息参数以生成消息,提高进程的执行速度。若获取到消息包,自消息配置表获取与消息配置标识对应的内容模板,消息配置表用于保存已注册的各进程所对应的内容模板,并根据内容模板和消息参数生成消息,通过消息服务进程统一组装消息参数以生成消息,并获取目标进程的信息,将消息发送至目标进程,使消息传输过程更加简单高效,提高消息的处理速度,进而提高工作效率。
104.图4为本技术另一实施例提供的一种消息传输装置的结构图,如图4所示,消息传输装置包括:存储器20,用于存储计算机程序;
105.处理器21,用于执行计算机程序时实现如上述实施例将消息参数组装为消息方法的步骤。
106.本实施例提供的运行消息服务进程的设备可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
107.其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(central processing unit,cpu);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有图像处理器(graphics processing unit,gpu),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(artificial intelligence,ai)处理器,该ai处理器用于处理有关机器学习的计算操作。
108.存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的消息传输方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括windows、unix、linux等。数据203可以包括但不限于消息参数、内容模板等。
109.在一些实施例中,消息传输装置还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
110.本领域技术人员可以理解,图4中示出的结构并不构成对消息传输装置的限定,可
以包括比图示更多或更少的组件。
111.本技术实施例提供的一种消息传输装置,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如下方法:
112.判断是否接收到进程所发送的消息包,所述消息包至少包括消息参数和消息配置标识;
113.若获取到所述消息包,自消息配置表获取与所述消息配置标识对应的内容模板,所述消息配置表用于保存已注册的各所述进程所对应的所述内容模板;
114.根据所述内容模板和所述消息参数生成消息;
115.获取目标进程的信息,将所述消息发送至所述目标进程。
116.最后,本技术还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。
117.可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(randomaccess memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
118.以上对本技术所提供的消息传输方法、装置、介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
119.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再多了解一些

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

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

相关文献