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

消息处理方法、装置、电子设备及存储介质与流程

2023-04-11 10:28:01 来源:中国专利 TAG:


1.本技术涉及数据库控制技术领域,尤其涉及一种消息处理方法、装置、电子设备及存储介质。


背景技术:

2.cdc(change data capture,变更数据同步)是识别和捕获对数据库中的数据所做的更改,例如,数据或数据表的插入、更新、删除,然后将这些更改按发生的顺序完整记录下来,并实时通过消息中间件传送到下游流程或系统的过程。
3.通常,采用databus(一种开源变更数据同步组件)的方式实现数据库变更数据的获取,databus对数据库中数据的生产和使用进了解耦,提升了数据库应用整体架构的可扩展性。为了后续的变更数据使用处理,消息使用方只需要处理databus的同步消息就可以实现。但是,由于消息使用方的正常工作依赖于databus的工作状态,所以databus的工作异常会导致消息使用方的工作异常。


技术实现要素:

4.有鉴于此,本技术的目的在于提出一种消息处理方法、装置、电子设备及存储介质,用以解决或部分解决上述技术问题。
5.基于上述目的,本技术的第一方面提供了一种消息处理方法,包括:
6.获取数据库的数据操作集;
7.根据所述数据操作集构建回调函数,所述回调函数用于生成同步插件输出的同步消息;
8.将所述回调函数的响应数据作为所述同步消息。
9.本技术的第二方面提供了另一种消息处理方法,所述方法包括:
10.同步获取数据库的变更数据;
11.利用同步插件和/或同步组件根据所述变更数据生成同步消息;
12.将所述同步消息发送到同步消息队列以供消息使用方处理。
13.本技术的第三方面提供了一种同步插件的构建装置,包括:
14.获取模块,被配置为获取数据库的数据操作集;
15.构建模块,被配置为根据所述数据操作集构建回调函数,所述回调函数用于生成同步插件输出的同步消息;
16.消息模块,被配置为将所述回调函数的响应数据作为所述同步消息。
17.本技术的第四方面提供了一种同步消息的生成装置,包括:
18.同步模块,被配置为同步获取数据库的变更数据;
19.生成模块,被配置为利用同步插件和/或同步组件根据所述变更数据生成同步消息;
20.发送模块,被配置为将所述同步消息发送到同步消息队列以供消息使用方处理。
等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
38.可以理解的是,在使用本技术各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本技术所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
39.例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本技术技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
40.作为一种可选的但非限定性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。
41.可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本技术的实现方式构成限定,其它满足相关法律法规的方式也可应用于本技术的实现方式中。
42.可以理解的是,本技术方案所涉及的数据(包括但不限于数据本身、数据的获取或使用)应当遵循相应法律法规及相关规定的要求。
43.为使本技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本技术进一步详细说明。
44.下面将参考若干示例性实施方式来描述本技术的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本技术,而并非以任何方式限制本技术的范围。相反,提供这些实施方式是为了使本技术更加透彻和完整,并且能够将本技术的范围完整地传达给本领域的技术人员。
45.根据本技术的实施方式,提出了一种消息处理方法、装置、电子设备及存储介质。
46.在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
47.下面参考本技术的若干代表性实施方式,详细阐释本技术的原理和精神。
48.在相关技术中,数据库需要有一种能够捕获数据库里的数据变化的架构,这样,数据库的变更数据就能被其他组件所使用。例如,如图1所示,异构数据库系统100中,每一个组织都存在众多的下属机构,每个下属机构都保存维护着自己相对独立的数据库101,而管理人员需要关心的是全局的、一致的、完整的变更数据。这种变更数据就需要从各个下属机构保存的数据库101中进行提取、清洗、转换,最后装载到一个统一标准的结构(如图1所示的消息队列103)当中。但是,当数据库中用于同步变更数据的同步组件102出现工作异常的问题时,会影响变更数据对应的同步消息的生成,进而影响后续消息使用方104对同步消息的处理。
49.针对上述问题,本技术提供了一种消息处理方法、装置、电子设备及存储介质。本技术实施例中同步插件的构建过程中,根据数据库的数据操作集构建回调函数,并将回调函数的响应数据作为同步插件生成的同步消息。这样,采用基于回调函数构建数据库插件
的方式避免了对数据库原有代码的修改,减少了同步消息生成过程中代码的修改量,并且数据库的插件具有部署简单、无侵入、灵活定制和自由扩展的优点,采用上述方案构建得到的同步插件也具有上述优点。本技术实施例中同步消息的生成过程中,通过同步插件或同步组件根据变更数据生成同步消息,解决了由于单一同步消息生成数据链的工作异常,带来的同步消息断流问题,从而提高了同步消息生成的稳定性。本技术实施例中同步消息的处理过程中,根据口令对同步消息进行处理,通过口令中同步消息的处理状态对重复的同步消息进行标记,实现了重复同步消息的辨别,进而保证了同步消息重复时服务的幂等性。
50.参考图2,本实施例的一种消息处理方法,可以包括以下步骤:
51.步骤201,获取数据库的数据操作集。
52.在该步骤中,同步插件的构建过程需要插件的注入位置,本实施例的注入位置可以是数据库的数据操作处。数据库指的是能够提供数据服务的系统,本实施例的数据库可以是与同步组件或同步插件连接的,能够提供数据服务的管理系统,例如,数据库可以是mysql(一种关系型数据库管理系统)。数据操作集指的是数据库变化对应的操作集,本实施例的数据操作集可以是对数据有变更的操作集,例如,create(创建),update(更新),delete(删除)。这样,为后续同步插件的回调函数的构建提供操作基础。
53.步骤202,根据所述数据操作集构建回调函数,所述回调函数用于生成同步插件输出的同步消息。
54.在该步骤中,回调函数指的是能够根据数据操作生成同步消息的函数,本实施例的回调函数可以是以插件形式注入的,能够根据数据操作生成同步消息的函数,例如,go语言的数据库连接及交互框架中的callback(回调)函数。这样,为后续同步消息的生成提供函数基础,避免了对数据库原有代码的修改,减少了同步消息生成过程中代码的修改量。
55.步骤203,将所述回调函数的响应数据作为所述同步消息。
56.在该步骤中,响应数据指的是回调函数被调用时的输出数据,本技术实施例中的响应数据可以是以插件形式注入的回调函数被调用时的输出数据。同步消息指的是能够表示数据库变化的消息,本实施例的同步消息可以是能够被处理的,表示数据库变化的消息。同步插件指的是能够获取同步消息的插件,本实施例的同步插件可以是与数据库连接的,能够获取同步消息的插件。这样,生成的同步消息可以为后续的消息使用方处理提供数据基础。
57.通过上述方案,利用基于回调函数构建的同步插件完成了同步消息的生成,避免了对数据库原有代码的修改,减少了同步消息生成过程中代码的修改量。
58.在一些实施例中,步骤202具体包括:
59.步骤2021,获取所述数据操作集中每个数据操作对应的回调容器,得到回调容器集。
60.步骤2022,选择所述回调容器集中的至少一个回调容器作为初始回调函数。
61.步骤2023,通过笛卡尔积设置所述初始回调函数的注入时机。
62.步骤2024,将所述初始回调函数注册为所述回调函数。
63.在上述方案中,回调容器集指的是能够独立运行的程序进程集,本实施例的回调容器集可以是回调函数对应的,能够独立运行的程序进程集,例如,grom中数据操作对应的*gorm.db的回调容器列表。注入时机指的是能够注入初始回调函数的时间点,本实施例
的注入时机可以是数据操作对应的,能够注入初始回调函数的时间点,例如,多个注入时机的集合为a,数据操作集为b,其中,注入时机可以是数据操作之前或数据操作之后,数据操作可以是create(创建),update(更新),delete(删除);通过笛卡尔积设置初始回调函数的方案c可以根据下式得到:c=a
×
...
×a×
b,其中,
×
表示笛卡尔积。db表示步骤2021对应的获取回调容器集,callback表示步骤2022对应的初始回调函数,gorm操作和after/before表示步骤2023对应的注入时机设置过程,register表示步骤2024对应的初始回调函数注册过程。
64.通过上述方案,为后续同步消息的生成提供函数基础,避免了对数据库原有代码的修改,减少了同步消息生成过程中代码的修改量。
65.参考图3a,本实施例的另一种消息处理方法,可以包括以下步骤:
66.步骤301,同步获取数据库的变更数据。
67.在该步骤中,变更数据指的是能够表示数据库变化的数据,本实施例的变更数据可以是数据操作对应的,能够表示数据库变化的数据。这样,为后续同步插件或同步组件生成同步消息提供数据基础。
68.步骤302,利用同步插件和/或同步组件根据所述变更数据生成同步消息。
69.在该步骤中,同步组件指的是能够获取同步消息的组件,本实施例的同步组件可以是与数据库连接的,能够获取同步消息的组件。例如,同步插件可以是基于orm框架(object relational mapping,对象关系映射)和回调函数构建的插件,orm框架可以解决面向对象与关系数据库存在的互不匹配的现象,同步组件可以是databus(一种开源变更数据同步组件),同步组件对数据的产生和使用进了解耦,提升整体架构的可扩展性消息使用方只需要处理databus的数据进行相关后续的数据处理,也可于事件驱动的架构模式中。这样,通过同步插件或同步组件生成同步消息,解决了由于单一同步消息生成数据链的工作异常,带来的同步消息断流问题,从而提高了同步消息生成的稳定性。
70.可以理解的是,同步插件或同步组件在获取同步消息时可以都与数据库连接,也可以分别与数据库连接获取数据库对应的同步消息。如图3b所示,同步插件a和同步组件b与数据库连接获取同步消息,如图3c所示,同步插件a与数据库连接获取同步消息。
71.步骤303,将所述同步消息发送到同步消息队列以供消息使用方处理。
72.在该步骤中,同步消息队列指的是能够接收同步插件或同步组件生成的同步消息的中间件,本实施例的同步消息队列可以是能够将同步消息推送到消息使用方的,能够接收同步插件或同步组件生成的同步消息的中间件。这样,为后续消息使用方处理同步消息提供数据基础。
73.通过上述方案,通过同步插件或同步组件生成同步消息,解决了由于单一同步消息生成数据链的工作异常,带来的同步消息断流问题,从而提高了同步消息生成的稳定性。
74.在一些实施例中,在步骤302之前,处理方法还可以包括:
75.通过所述同步插件向所述同步组件发送获取请求;
76.利用所述同步组件根据所述获取请求获取所述同步组件的工作状态,并发送所述工作状态到所述同步插件,其中,所述工作状态包括正常状态和异常状态。
77.在上述方案中,获取请求指的是能够获取同步组件工作状态的请求数据,本实施例的获取请求可以同步插件发送的,能够获取同步组件工作状态的请求数据。工作状态指
的是能够表示同步组件工作正常与否的数据,本实施例的工作状态可以是发送到同步插件的,能够表示同步组件工作正常与否的数据,例如,可以选择sla(service level agreement,服务等级协议)作为同步组件的工作状态。
78.通过上述方案,为后续同步插件和同步组件之间的切换提供数据基础。
79.在一些实施例中,通过所述同步插件向所述同步组件发送获取请求,包括:
80.通过所述同步插件以预先设置的第一时间间隔为周期向所述同步组件发送所述获取请求。
81.在上述方案中,第一时间间隔指的是获取同步组件工作状态的时间,本实施例的第一时间间隔可以是同步插件中获取同步组件工作状态的时间。
82.具体的,如图3d所示,同步组件和同步插件获取变更数据后,同步插件以第一时间间隔为周期向同步组件发送获取请求,同步组件根据获取请求向同步插件发送工作状态以便同步插件根据工作状态和变更数据生成同步消息。
83.通过上述方案,为后续同步插件和同步组件之间的切换提供数据基础。
84.在一些实施例中,步骤302具体包括:
85.响应于确定所述工作状态为正常状态,利用所述同步组件根据所述变更数据生成同步消息;
86.响应于确定所述工作状态为异常状态,利用所述同步插件根据所述变更数据生成同步消息。
87.在上述方案中,正常状态指的是同步组件工作正常时的状态,本实施例的正常状态可以是消息使用方正常处理同步消息,同步组件工作正常时的状态,例如,sla≥99.99%的工作状态为正常状态。异常状态指的是同步组件工作异常时的状态,本实施例的异常状态可以是消息使用方不能正常处理同步消息,同步组件工作异常时的状态,例如,sla<99.99%的工作状态为异常状态。
88.通过上述方案,为后续采用同步插件或同步组件生成同步消息提供架构基础。
89.在一些实施例中,所述利用所述同步插件根据所述变更数据生成同步消息,包括:
90.步骤3021,将所述同步插件中的回调函数按照数据操作进行分类,得到分类结果;
91.步骤3022,根据所述变更数据对应的数据操作从所述分类结果中选择至少一个回调函数;
92.步骤3023,根据所述选择的回调函数对应的注入时机顺序获取所述回调函数的响应数据;
93.步骤3024,将所述响应数据合并作为所述同步消息。
94.在上述方案中,由于变更数据可以对应多个数据操作,将同步插件中的回调函数按照数据操作进行分类,能够为后续根据回调函数的注入时机完成回调函数的调用提供排序基础。回调函数1、回调函数2

表示步骤3021中同步插件中的回调函数,classify表示步骤3021中的回调函数的分类过程,create、回调函数1

表示步骤3022中create操作对应的回调函数分类,before:all表示步骤3022中回调函数1的响应数据,before:3after:1表示步骤3022中回调函数2的响应数据,after:1表示步骤3022中回调函数3的响应数据,after:2表示步骤3022中回调函数4的响应数据。
95.通过上述方案,在根据变更数据调用回调函数时,根据回调函数的注入时机对回
调函数进行调用,提高了同步消息生成过程的细化程度。
96.在一些实施例中,在利用同步插件根据所述变更数据生成同步消息之后,还包括:
97.响应于确定所述工作状态从所述异常状态转换为所述正常状态,利用所述同步插件和所述同步组件根据所述同步消息生成口令,并将所述口令发送到消息队列以供所述消息使用方判断所述同步消息的处理状态。
98.在上述方案中,口令指的是能够标记同步消息处理状态的数据,本实施例的口令可以是同步插件或同步组件生成的,能够标记同步消息处理状态的数据,例如,可以采用md5(message-digest 5,一种密码散列函数)加密方法生成同步消息对应的口令。
99.通过上述方案,为后续消息使用方根据口令对同步消息进行处理提供数据基础。
100.在一些实施例种,参考图3e,步骤303之后另一种消息处理方法还包括以下步骤:
101.步骤304,利用所述消息使用方接收同步消息和所述同步消息对应的口令。
102.在该步骤中,为了保证同步消息的幂等性,即,避免出现同步消息重复处理的情况,通过接收同步消息对应的口令为后续根据口令实现同步消息的处理提供验证基础。
103.步骤305,采用所述消息使用方根据所述口令对所述同步消息进行处理。
104.在该步骤中,处理指的是使用同步消息的行为,本实施例中的处理可以是消息使用方使用同步消息队列中同步消息的行为,例如,审批消息使用方使用数据库中更新的审批列表数据、更新的提醒数据和更新的提醒数据。
105.通过上述方案,根据口令对同步消息进行处理,通过口令中同步消息的处理状态对重复的同步消息进行标记,实现了重复同步消息的辨别,进而保证了同步消息重复时服务的幂等性。
106.在一些实施例中,步骤305具体包括:
107.采用所述消息使用方根据所述口令的口令状态判断所述同步消息的处理状态,得到处理结果;
108.采用所述消息使用方根据所述处理结果对所述同步消息进行处理。
109.在上述方案中,口令状态指的是能够表示口令的不同状态的数据,本实施例的口令状态可以是消息使用方中预先设定的,能够表示口令的不同状态的数据,例如,采用md5加密方法对口令的标签进行设定,口令状态可以是md5生成的hash值。
110.具体的,消息使用方将口令的口令状态与预先设定的处理状态对应的口令状态进行对比,将对比结果作为处理结果。
111.通过上述方案,根据口令对同步消息进行处理,通过口令中同步消息的处理状态对重复的同步消息进行标记,实现了重复同步消息的辨别,进而保证了同步消息重复时服务的幂等性。
112.在一些实施例中,所述采用所述消息使用方根据所述处理结果对所述同步消息进行处理,包括:
113.响应于确定所述处理结果为未处理,采用所述消息使用方根据所述同步消息进行业务处理,将所述同步消息对应的口令状态设置为已处理,并将所述口令状态存储到口令数据库中,其中,所述口令数据库中的数据根据预先设置的第二时间间隔定时同步到数据库中;
114.响应于确定所述处理结果为已处理,采用所述消息使用方放弃处理所述同步消
息。
115.在上述方案中,第二时间间隔指的是获取口令状态的时间,本实施例的第二时间间隔可以是数据库获取同步消息列表中口令状态的时间。口令数据库指的是能够存储并管理口令的数据库,本实施例的口令数据库可以是与同步消息队列同步的,能够存储并管理口令的数据库,例如,口令数据库可以是redis(一种键值数据库)。
116.具体的,如图3f所示,当处理结果为未处理时,消息使用方根据同步消息进行业务处理,即消息使用方对同步消息进行处理,然后消息使用方根据同步消息生成已处理的口令状态,并将已处理的口令状态存储到口令数据库中,用于同步消息列表中口令状态的更新。
117.通过上述方案,通过口令的口令状态实现了重复同步消息的辨别,进而保证了同步消息重复时服务的幂等性。
118.需要说明的是,本技术实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本技术实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
119.需要说明的是,上述对本技术的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
120.基于同一发明构思,在上述各个实施例方法对应实施方案的基础上,可以有如下具体实现情况。
121.步骤1:在gorm(对应本技术实施例中的同步插件)中在进行数据更改操作处以插件的形式注入回调函数,回调函数在进行数据更改后会被调用。
122.步骤2:在回调函数中安装开关,此开关的作用是决定databus(对应本技术实施例中的同步组件)降级方案是否打开。其中的开关主要由一个监视器组成,监视器会周期性地查看databus系统的运行情况,当发现databus系统运行有问题时就会打开databus降级方案的开关,然后就会运行降级方案(对应本技术的采用同步插件生成同步消息的过程)了,然后继续监视,当databus系统正常运行时就会关闭降级方案。监视器将会以一个固定时间间隔d进行监视。
123.步骤3:执行回调函数时检查开关情况,如果开关关闭,意味着没有打开databus降级方案,那么回调函数就结束了,不会继续执行。反之,即打开了databus降级方案,那么会继续执行回调函数,并将数据更改信息发送到相应的消息队列中供下游服务处理。本实施例有一个时间段是需要特别关注的,那就是当databus系统从异常恢复正常运行时,由于监视器监视时间间隔的原因,开关的关闭会有所延迟(最坏情况为d),这样,两个方案同时在运行,会导致消息队列中出现重复消息,导致下游服务消息推送重复,此时需要保证服务的幂等性。可以使用token机制来实现幂等性,生产者发送每条数据时,根据数据修改操作的信息生成一个token,在下游服务进行处理时,则验证该token是否被处理过,如果还没被处理过,则进行业务处理。处理结束后,把该token存入redis中,同时设置过期时间,并设置状
态为已处理,然后将redis数据定时同步到数据库中进行持久化存储。如果已经处理过了,则不进行处理。
124.除此之外本实施例还支持更加细化的插件配置,例如设置回调函数发送的信息的内容所在的时间点:在某个gorm操作之前、在某个gorm操作之后,而且gorm操作可以细分为:create、update、delete、其他操作。为方便描述,设不同时间点的集合为a,gorm操作集合为b,那么所有的组合操作方案c为a(a可以有多次)与b的笛卡尔积:c=a
×…×a×
b(1)本实施例以插件形式进行函数注入的流程如下所示,(a)获得数据库操作相应的*gorm.db,然后获得相应*gorm.db的回调容器列表,(b)接着创建将要注入的回调容器,(c)紧接着设置函数注入的时机,这边的时机可以是多重约束的时机(对应于式(1)中的多个a),例如在事件event1之后,event2、event3之前
……
,(d)最后往回调容器中注册自己定义函数。当执行完gorm操作后对回调函数进行调用时需要根据这些时机约束进行调用,做法为:对这些回调函数根据对应的gorm操作进行分类。然后对每一个gorm操作类中的回调函数进行拓扑排序,从而获得相应的执行顺序列表。可以看出,同步插件具有可灵活定制以及自由扩展的特点,这也就意味着对于数据的更改可以灵活的进行捕获。除此之外本实施例还支持独立部署,即可以在不使用传统cdc实现方案的情景下单独使用本实施例,这种方式具有部署简单、无侵入的优点。
125.本实施例虽然是在golang语言下的gorm框架下实现的,但是理论上来说是可以泛化的。假设orm框架支持以插件形式注入回调函数,那么就可以使用本实施例中的同步插件方案。
126.上述实施例的消息处理方法,具有如前述任一实施例中的消息处理方法实施例的有益效果,在此不再赘述。
127.基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种同步插件的构建装置。
128.参考图4,所述一种消息处理装置,包括:
129.获取模块401,被配置为获取数据库的数据操作集;
130.构建模块402,被配置为根据所述数据操作集构建回调函数,所述回调函数用于生成同步插件输出的同步消息;
131.消息模块403,被配置为将所述回调函数的响应数据作为所述同步消息。
132.在一些实施例中,构建模块402具体包括:
133.获取所述数据操作集中每个数据操作对应的回调容器,得到回调容器集;
134.选择所述回调容器集中的至少一个回调容器作为初始回调函数;
135.通过笛卡尔积设置所述初始回调函数的注入时机;
136.将所述初始回调函数注册为所述回调函数。
137.基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种同步消息的生成装置。
138.参考图5,所述另一种消息处理装置,包括:
139.同步模块501,被配置为同步获取数据库的变更数据;
140.生成模块502,被配置为利用同步插件和/或同步组件根据所述变更数据生成同步消息;
141.发送模块503,被配置为将所述同步消息发送到同步消息队列以供消息使用方处理。
142.在一些实施例中,生成装置还包括:
143.监控发送模块,被配置为通过所述同步插件向所述同步组件发送获取请求;
144.状态获取模块,被配置为利用所述同步组件根据所述获取请求获取所述同步组件的工作状态,并发送所述工作状态到所述同步插件,其中,所述工作状态包括正常状态和异常状态。
145.在一些实施例中,监控发送模块具体被配置为:
146.通过所述同步插件以预先设置的第一时间间隔为周期向所述同步组件发送所述获取请求。
147.在一些实施例中,生成模块502具体包括:
148.组件单元,被配置为响应于确定所述工作状态为正常状态,利用所述同步组件根据所述变更数据生成同步消息;
149.插件单元,被配置为响应于确定所述工作状态为异常状态,利用所述同步插件根据所述变更数据生成同步消息。
150.在一些实施例中,插件单元具体被配置为:
151.将所述同步插件中的回调函数按照数据操作进行分类,得到分类结果;
152.根据所述变更数据对应的数据操作从所述分类结果中选择至少一个回调函数;
153.根据所述选择的回调函数对应的注入时机顺序获取所述回调函数的响应数据;
154.将所述响应数据合并作为所述同步消息。
155.在一些实施例中,所述插件单元还具体被配置为:
156.响应于确定所述工作状态从所述异常状态转换为所述正常状态,利用所述同步插件和所述同步组件根据所述同步消息生成口令,并将所述口令发送到消息队列以供所述消息使用方判断所述同步消息的处理状态。
157.在一些实施例中,所述另一种消息处理装置还包括:
158.接收模块504,被配置为利用所述消息使用方接收同步消息和所述同步消息对应的口令;
159.处理模块505,被配置为采用所述消息使用方根据所述口令对所述同步消息进行处理。
160.在一些实施例中,处理模块505具体包括:
161.处理状态单元,被配置为采用所述消息使用方根据所述口令的口令状态判断所述同步消息的处理状态,得到处理结果;
162.处理结果单元,被配置为采用所述消息使用方根据所述处理结果对所述同步消息进行处理。
163.在一些实施例中,处理结果单元具体被配置为:
164.响应于确定所述处理结果为未处理,采用所述消息使用方根据所述同步消息进行业务处理,将所述同步消息对应的口令状态设置为已处理,并将所述口令状态存储到口令数据库中,其中,所述口令数据库中的数据根据预先设置的第二时间间隔定时同步到数据库中;
165.响应于确定所述处理结果为已处理,采用所述消息使用方放弃处理所述同步消息。
166.为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本技术时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
167.上述实施例的装置用于实现如图3所示实施例中相应的消息处理方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
168.基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的消息处理方法。
169.图6示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
170.处理器1010可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
171.存储器1020可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
172.输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
173.通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
174.总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
175.需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
176.上述实施例的电子设备用于实现前述任一实施例中相应的消息处理方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
177.基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的消息处理方法。
178.本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
179.上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的消息处理方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
180.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本技术的范围(包括权利要求)被限于这些例子;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
181.另外,为简化说明和讨论,并且为了不会使本技术实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本技术实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本技术实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本技术的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本技术实施例。因此,这些描述应被认为是说明性的而不是限制性的。
182.尽管已经结合了本技术的具体实施例对本技术进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
183.本技术实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本技术实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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