CN112887196B - 消息发送方法、系统、装置、设备及可读存储介质 - Google Patents

消息发送方法、系统、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN112887196B
CN112887196B CN202110076528.7A CN202110076528A CN112887196B CN 112887196 B CN112887196 B CN 112887196B CN 202110076528 A CN202110076528 A CN 202110076528A CN 112887196 B CN112887196 B CN 112887196B
Authority
CN
China
Prior art keywords
message
target
queue
flag bit
sent
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.)
Active
Application number
CN202110076528.7A
Other languages
English (en)
Other versions
CN112887196A (zh
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.)
Shanghai Envision Innovation Intelligent Technology Co Ltd
Envision Digital International Pte Ltd
Original Assignee
Shanghai Envision Innovation Intelligent Technology Co Ltd
Envision Digital International Pte 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 Shanghai Envision Innovation Intelligent Technology Co Ltd, Envision Digital International Pte Ltd filed Critical Shanghai Envision Innovation Intelligent Technology Co Ltd
Priority to CN202110076528.7A priority Critical patent/CN112887196B/zh
Publication of CN112887196A publication Critical patent/CN112887196A/zh
Application granted granted Critical
Publication of CN112887196B publication Critical patent/CN112887196B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/212Monitoring or handling of messages using filtering or selective blocking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请是关于一种消息发送方法、系统、装置、设备及可读存储介质,属于数据传输领域。所述方法包括:获取目标消息的消息发送状态,消息发送状态用于指示目标消息从消息队列发送至消息处理服务器的状态;根据消息发送状态在阻塞队列中对目标消息对应的目标标志位进行状态修改,阻塞队列中包括与消息对应的依次排列的标志位,消息为待通过消息队列进行发送的内容;响应于目标标志位用于指示目标消息已发送,根据阻塞队列目标标志位所处的队列位置,对目标标志位进行对应处理。通过阻塞队列记录消息队列中消息的发送状态,来保证消息队列中的消息能够成功发送至消息处理服务器,避免在消息在发送的过程中丢失,提高了消息发送的可靠性。

Description

消息发送方法、系统、装置、设备及可读存储介质
技术领域
本申请涉及数据传输领域,特别涉及一种消息发送方法、系统、装置、设备及可读存储介质。
背景技术
消息队列是位于消息的生产端与消费端之间的中间件,可以实现消息的接收、存储与发送。生产端将消息投递至消息队列中,由消息队列将消息发送至对应的消费端,再由消息队列将确认字符(Acknowledge Character,简称ACK)发送至生产端,生产端在接收到ACK之后,继续发送下一条消息。
在海量时序数据传输的场景下,为提高数据传输的效率,消息队列常采用异步传输方式,即生产端无需接收到ACK之后再进行下一条消息的发送,而是直接将生产的消息发送至消息队列,不再关注消息是否能被生产端成功接收。
以异步传输方式进行消息传输,虽然传输效率高,但是由于没有可靠的传输确认机制,存储在消息队列里的消息可能存在丢失的风险,消息传输的可靠性较低。
发明内容
本申请提供了一种消息发送方法、系统、装置、设备及可读存储介质,能够提高消息传输的可靠性。所述技术方案如下:
一方面,提供了一种消息发送方法,所述方法包括:
获取目标消息的消息发送状态,所述消息发送状态用于指示所述目标消息从消息队列发送至消息处理服务器的状态;
根据所述消息发送状态在阻塞队列中对所述目标消息对应的目标标志位进行状态修改,所述阻塞队列中包括与消息对应的依次排列的标志位,所述消息为待通过所述消息队列进行发送的内容;
响应于所述目标标志位用于指示所述目标消息已发送,根据所述阻塞队列中所述目标标志位所处的队列位置,对所述目标标志位进行对应处理。
另一方面,提供了一种消息发送系统,所述系统包括:
阻塞队列,用于获取目标消息的消息发送状态;根据所述消息发送状态在阻塞队列中对所述目标消息对应的目标标志位进行状态修改;响应于所述目标标志位用于指示所述目标消息已发送,根据所述阻塞队列中所述目标标志位所处的队列位置,对所述目标标志位进行对应处理;
消息队列,用于将所述目标消息发送至消息处理服务器;根据所述目标消息的发送结果生成确认字符;向所述阻塞队列发送所述目标消息对应的所述确认字符;
消息处理服务器,用于对所述目标消息进行对应处理。
另一方面,提供了一种消息发送装置,所述装置包括:
获取模块,用于获取目标消息的消息发送状态,所述消息发送状态用于指示所述目标消息从消息队列发送至消息处理服务器的状态;
修改模块,用于根据所述消息发送状态在阻塞队列中对所述目标消息对应的目标标志位进行状态修改,所述阻塞队列中包括与消息对应的依次排列的标志位,所述消息为待通过所述消息队列进行发送的内容;
处理模块,用于响应于所述目标标志位用于指示所述目标消息已发送,根据所述阻塞队列中所述目标标志位所处的队列位置,对所述目标标志位进行对应处理。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述本申请实施例中任一所述的消息发送方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述本申请实施例中任一所述的消息发送方法。
另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中任一所述的消息发送方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过阻塞队列对消息队列中的对应的消息发送状态进行记录,当消息队列中的目标消息被成功发送至消息处理服务器后,阻塞队列对应修改与目标消息对应的目标标志位的状态,并根据目标标志位在阻塞队列中所处的队列位置,对目标标志位进行对应处理。通过设置阻塞队列来保证消息队列中的消息能够成功发送至消息处理服务器,避免了消息在发送过程中丢失,提高了消息发送的可靠性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的实施环境示意图;
图2是本申请一个示例性实施例提供的消息发送方法的流程图;
图3是本申请一个示例性实施例提供的消息队列与阻塞队列之间的交互关系示意图;
图4是本申请另一个示例性实施例提供的消息发送方法的流程图;
图5是本申请另一个示例性实施例提供的消息发送方法的流程图;
图6是本申请一个示例性实施例提供的阻塞队列中标志位对应的处理逻辑示意图;
图7是本申请一个示例性实施例提供的消息发送系统的结构框图;
图8是本申请一个示例性实施例提供的消息发送装置的结构框图;
图9是本申请一个示例性实施例提供的服务器的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例的实施环境进行说明。
请参考图1,该实施环境中包括消息生产端110、消息队列120、阻塞队列130和消息消费端140。
消息生产端110是消息的发送端。消息生成端110可以是用户操作的终端,其生成待处理的数据,并将数据封装成消息,再将消息投递至消息队列120。上述终端可以是智能手机、平板电脑、便携式电脑、台式电脑等。该消息生产端110也可以是中间服务器,接收来自终端的消息并对其进行存储,当消息需要被处理时,中间服务器将消息发送至消息队列120中。
消息队列120位于消息生产端110与消息消费端140之间,负责接收来自消息生产端110的消息,并将消息投递至对应的消息消费端140,可实现消息的接收、缓存与发送。消息队列120可以在物理服务器中、云服务器中或服务器中的一个模块实现。
消息消费端140是消息的处理端。消息队列120在接收到消息生产端110发送的消息后,对消息进行存储,由消息消费端140对消息队列120中的消息进行轮询,当查询到对应满足处理条件的消息后,由消息队列120将消息发送至对应的消息消费端140。示意性的,该消息消费端140为消息处理服务器。该消息处理服务器可以是一台物理服务器、多台服务器组成的服务器群组或云服务器。以账号注册为例,用户在网页上进行某个网站的账号注册,其中需要进行手机验证码验证,由于验证码的接收实时要求性并不高,即使是1至2秒的响应时间在用户看来也是即时的。终端将账号注册请求发送至消息队列,消息队列在接收到请求消息后立即给终端返回一个响应信息,如终端注册网页显示“已发送验证码”,消息队列再依次将各个终端的请求消息发送至网站服务器,网站服务器对该请求进行响应,并向用户填写的手机号码发送验证信息。但在高峰期,即有很多终端同时需要网站服务器对请求消息进行处理,则在消息队列向网站服务器发送消息时,可能存在请求消息丢失的情况,但实际终端无法得知请求消息未被成功投递至网站服务器,网页内容也已显示“已发送验证码”。常规的做法是在请求发送后的预设时间段之后,再次允许用户发送请求,如1分钟内未接收到验证码可请求重新发送。
在本申请实施例中,阻塞队列130为外挂在消息队列120之外的一个存储队列。在消息生产端110将消息发送至消息队列120之前,先将消息标识发送至阻塞队列130,由阻塞队列130依次存储消息标识,其中,消息标识与消息对应,示意性的,消息标识为消息存储在数据库中的索引。
阻塞队列130在接收到消息标识后,对应生成消息对应的标志位,该标志位与消息在消息队列120中的状态对应。当缓存在消息队列120中的消息被成功发送至消息消费端140后,消息队列120将对应生成的确认字符发送至阻塞队列130。阻塞队列130在接收到确认字符时,确定该确认字符对应的消息标识,并根据确认字符以及消息标识在阻塞队列130中的位置,将消息标识所对应的标志位进行更改。当该消息标识位于阻塞队列130的队头位置时,将该消息标识从阻塞队列130中移除;当该消息标识位于阻塞队列130的非队头位置时,等待该消息标识移动至队头位置,再将其移除。若消息未发送成功,阻塞队列130通过回调函数(Callback)确定消息队列120发送消息失败后,将该消息对应的标志位进行更改,并指示消息队列120重新发送该消息。由于阻塞队列130的存在,可以有效监控消息队列120的将消息成功投递至消息消费端140,避免消息队列120在将消息发送至消息消费端140时未发送成功造成消息丢失,提高了消息发送的可靠性。
示意性的,消息队列120与阻塞队列130可实现在同一台物理服务器中,也可实现在不同的物理服务器或云服务器中。
结合上述实施环境,对本申请的应用场景进行说明。
在本申请实施例中,该消息发送方法可以应用在在线场景中,也可以应用在离线场景中。示意性的,在在线场景中,消息队列与阻塞队列组成的系统在实时接收消息生产端发送的一条消息时,阻塞队列先获取消息标识进行存储,并设置与消息在消息队列中的发送状态相对应的标志位,当阻塞队列确定消息队列已将消息通过在线传输至消息处理服务器后,将其在阻塞队列中的标志位对应删除。在离线场景中,消息队列与阻塞队列组成的系统接收由消息生产端发送的消息集合时,阻塞队列按消息集合中消息写入消息队列的时间顺序,将消息对应的消息标识进行排列存储,也即,消息标识在阻塞队列中的排列顺序与消息在消息队列中的排列顺序相对应,当消息队列中的消息被成功发送至消息处理服务器后,消息队列向阻塞队列发送对应的确认字符,阻塞队列在接收到确认字符后,确定该消息对应的标志位在阻塞队列中的位置,当该标志位位于队头位置时,移除标志位,当标志位位于非队头位置时,等待位于其前面的标志位全部移除后,再进行移除操作,其保证了在离线场景下,批量数据的输入仍是严格有序的。
示意性的,该消息发送方法可以应用在数据迁移场景中。旧数据库系统通过阻塞队列和消息队列将数据迁移至新数据库系统中,需要保证数据存储在新数据库系统中的顺序是与在旧数据系统中的存储顺序是相对应的。旧数据库系统在将数据封装成消息后,将消息对应的消息标识发送至阻塞队列,再将消息按照在旧数据库中的存储顺序发送至消息队列中,其中,阻塞队列中消息标识的存储顺序与消息发送至消息队列的时间顺序相对应,只有在接收到消息队列发送的确认字符,以及对应标志位位于阻塞队列队头位置的标志位才会被移除,保证了数据在从旧数据库系统迁移至新数据库系统中时,数据之间的位置关系不变。
结合上述实施环境和应用场景,对本申请实施例中提供的消息发送方法进行说明。请参考图2,其示出了本申请一个示例性实施例提供的消息发送方法的流程图,本申请实施例以消息发送方法应用于图1中的阻塞队列130中进行举例说明,该方法包括:
步骤201,获取目标消息的消息发送状态。
在本申请实施例中,消息生产端需要将目标消息投递至消息队列,由消息队列将目标消息根据需求发送至消息处理服务器。阻塞队列在目标消息被投递至消息队列之前,获取目标消息对应的消息标识并存储。
阻塞队列获取目标消息在消息队列中的消息发送状态。消息发送状态用于指示消息从消息队列发送至消息处理服务器的状态,其中,上述消息为待通过消息队列进行发送的内容。示意性的,该消息发送状态包括等待发送、发送中、已发送、发送失败。
其中,当目标消息发送状态对应为等待发送时,目标消息被存储在消息队列中。示意性的,目标消息对应有发送条件,在一个示例中,消息处理服务器对消息队列中存储的消息进行轮询,当查询到目标消息对应的发送条件与当前条件符合时,消息队列将目标消息发送至消息处理服务器,此时,目标消息的消息发送状态对应为发送中。当消息队列接收到由消息处理服务器返回的确认接收到该目标消息的确认信号时,目标消息的消息发送状态对应为已发送。而消息队列在预设时间段内未接收到由消息处理服务器返回的确认信号时,目标消息的消息发送状态对应为发送失败。
步骤202,根据消息发送状态在阻塞队列中对目标消息对应的目标标志位进行状态修改。
在本申请实施例中,阻塞队列中包括与消息对应的依次排列的标志位,在阻塞队列中,标志位与消息标识对应存储,消息对应的标志位由消息在消息队列的消息发送状态决定。在一个示例中,阻塞队列记录的消息标识和标志位对应关系如表一所示:
表一
Figure BDA0002907833020000071
可选的,阻塞队列以消息发送至消息队列的时间顺序对消息进行依次排列。先被消息生产端发送至消息队列的消息排在阻塞队列的队列位置前部分,后被消息生产端发送至消息队列的消息排在阻塞队列的队列位置后部分。在一个示例中,消息生产端发送消息的顺序为{消息A,消息C,消息B,消息D},则在阻塞队列中消息标识与标志位的排列顺序为{消息标识A:标志位A,消息标识C:标志位C,消息标识B:标志位B,消息标识D:标志位D}。
可选的,消息还对应有优先级,阻塞队列以消息的优先级进行依次排列。优先级较高的消息被排列在阻塞队列的队列位置前部分,优先级较低的消息被排列在阻塞队列的队列位置后部分,优先级相同的消息根据消息从消息生产端发送至消息队列的时间依次排序。在一个示例中,消息的优先级被分为第一优先级、第二优先级、第三优先级和第四优先级,其中,第一优先级的优先级别最高,消息生产端发送消息的顺序为{消息A,消息C,消息B,消息D},其中,消息A的优先级为第三优先级,消息C的优先级为第一优先级,消息B的优先级为第三优先级,消息D的优先级为第二优先级,则在阻塞队列中消息标识与标志位的排列顺序为{消息标识C:标志位C,消息标识D:标志位D,消息标识A:标志位A,消息标识B:标志位B}。
在本申请实施例中,阻塞队列根据目标消息在消息队列中的消息发送状态,在阻塞队列中对目标消息对应的目标标志位进行状态修改。也即,当消息队列中目标消息的状态发生改变时,阻塞队列需要对标志位进行对应的状态修改。例如,消息队列将消息A发送至消息处理服务器,并且接收到了消息处理服务器返回的确认信号,确定消息A已经被成功发送至消息处理服务器,则阻塞队列将消息A对应的标志位修改为已发送。
步骤203,响应于目标标志位用于指示目标消息已发送,根据阻塞队列中目标标志位所处的队列位置,对目标标志位进行对应处理。
当阻塞队列将目标消息对应的目标标志位修改为已发送时,获取目标标志位在阻塞队列中的队列位置,并根据该队列位置对目标标志位进行对应处理。示意性的,当目标标志位位于阻塞队列的队头位置时,将目标标志位及其对应的消息标识从阻塞队列中移除,代表目标消息已被成功发送至消息处理服务器。当目标标志位位于阻塞队列的非队头位置时,等待位于目标标志位前方的标志位全部被移除后,再进行移除操作。
在一个示例中,请参考图3,其示出了消息队列与阻塞队列之间的交互关系。其中,阻塞队列330通过获取消息队列320中的消息发送状态,对存储在阻塞队列中的标志位对应状态进行修改,阻塞队列330中存储有多个消息对应的标志位311,用于指示消息在消息队列320中的消息发送状态。示意性的,标志位对应指示的消息状态包括“已发送”、“发送中”、“未发送”和“发送失败”。当标志位指示消息已发送,则确定对应标志位在阻塞队列中的队列位置,若标志位在队头位置,则移除该标志位;若标志位在非队头位置,则等待该标志位之前的其他标志位全部移除之后,移除该标志位。当标志位指示消息发送中,则等待消息队列在接收到消息处理服务器的确认信号之后,发送给阻塞队列的确认字符,当接收到确认字符后,将标志位对应修改为指示消息已发送。当标志位指示消息未发送,则指示消息队列发送该标志位对应消息的消息内容至消息处理服务器。当标志位指示消息发送失败时,则指示消息队列重新发送该标志位对应消息的消息内容至消息处理服务器。
综上所述,本申请实施例提供的消息发送方法,通过阻塞队列存储消息标识,并对消息队列中的对应的消息发送状态进行记录,当消息队列中的目标消息被成功发送至消息处理服务器后,阻塞队列对应修改与目标消息对应的目标标志位,且当目标标志位位于阻塞队列的队头位置时,将其进行移除。通过设置阻塞队列来保证消息队列中的消息能够成功发送至消息处理服务器,避免了消息在发送过程中丢失,提高了消息发送的可靠性。
结合上述实施例,以消息队列成功发送目标消息为例,对本申请实施例中提供的消息发送方法进行说明,请参考图4,其示出了本申请另一个示例性实施例提供的消息发送方法的流程图。
步骤401,获取目标消息的消息发送状态。
在本申请实施例中,阻塞队列与消息队列之间建立有连接关系,阻塞队列可通过回调函数获取消息队列中目标消息的消息发送状态。当消息队列将目标消息成功发送至消息处理服务器,并接收到对应的确认信号后,向阻塞队列发送确认字符,该确认字符由消息队列成功将目标消息发送至消息处理服务器时生成。
步骤402,根据消息发送状态在阻塞队列中对目标消息对应的目标标志位进行状态修改。
阻塞队列在接收到消息队列发送的确认字符后,根据该确认字符将目标标志位的状态修改为指示目标消息已发送。也即,阻塞队列确定目标消息已被成功发送至消息处理服务器。
步骤403,响应于目标标志位用于指示目标消息已发送,确定目标标志位在阻塞队列中的队列位置。
在本申请实施例中,阻塞队列确定目标消息已被成功发送至消息处理服务器后,在阻塞队列中查找并确定目标标志位所在的队列位置。
步骤4041,响应于目标标志位位于阻塞队列的队头位置,从阻塞队列移除目标标志位。
当阻塞队列确定目标标志位位于阻塞队列的队头位置,即目标标志位对应的队列位置之前已没有未移除的标志位时,目标标志位及其对应的消息标识均从阻塞队列中移除。
步骤4042,更新剩余的标志位在阻塞队列中的队列位置。
当目标标志位被移除后,可选的,更新阻塞队列中剩余标志位的队列位置。在一个示例中,如表二所示,确认消息1对应的消息内容在消息队列中已成功发送至消息处理服务器后,对消息1对应的标志位进行状态修改,修改为“已发送”,由于消息1位于阻塞队列的队头位置,故将其进行移除,移除后的阻塞队列如表三所示,消息2、消息3、消息4、消息5的队列位置进行了对应更新。
表二
Figure BDA0002907833020000101
表三
Figure BDA0002907833020000102
可选的,目标标志位还对应有删除标志位,当目标标志位位于所述阻塞队列的非队头位置时,所述删除标志位对应为不可删除状态,当目标标志位位于阻塞队列的队头位置时,且目标标志位指示目标消息已发送时,对应的删除标志位为可删除状态。判断目标标志位是否位于阻塞队列的队头位置;响应于目标标志位位于阻塞队列的队头位置,将目标标志位对应的删除标志位设置为可删除状态;响应于删除标志位对应为可删除状态,从阻塞队列移除目标标志位。
示意性的,以0和1分别表示不可删除状态和可删除状态,即,当目标标志位位于阻塞队列的非队头位置时,对应的删除标志位为0,当目标标志位位于阻塞队列的队头位置时,且目标标志位指示目标消息已发送时,对应的删除标志位为1。当阻塞队列中有标志位被移除时,根据标志位各自对应的队列更新对应的删除标志位,如表四所示,消息1为目标消息,确认目标消息对应的消息内容在消息队列中已成功发送至消息处理服务器后,对目标消息对应的标志位进行状态修改,修改为“已发送”,判断目标标志位是否位于所述阻塞队列的所述队头位置,响应于目标标志位位于阻塞队列的队头位置,将目标标志位对应的删除标志位设置为1,响应于删除标志位对应为1,从阻塞队列移除目标标志位。在移除目标标志位之后,对阻塞队列中的剩余消息进行删除标志位更新,更新后的阻塞队列如表五所示。
表四
Figure BDA0002907833020000103
/>
Figure BDA0002907833020000111
表五
Figure BDA0002907833020000112
步骤4051,响应于目标标志位位于阻塞队列的非队头位置,等待目标标志位所处的队列位置之前的标志位被移除。
如表五所示,消息2位于队头位置,但由于消息2的标志位对应为发送中,则消息2等待由消息队列返回的确认字符,而消息3对应的删除标志位为0,即非队头位置,消息3等待消息2的标志位对应修改为已发送并移除。
步骤4052,响应于目标标志位移动至队头位置,从阻塞队列移除目标标志位。
当位于目标标志位之前的标志位均被移除,目标标志位被移动至队头位置,而目标标志位对应的目标消息又已确认成功发送至消息处理服务器,则将目标标志位从阻塞队列中移除。
示意性的,当阻塞队列接收到消息队列返回的确认字符时,对消息2的标志位进行状态修改,修改为“已发送”,消息2对应的删除标志位置1,即消息2位于队头位置,且消息2对应的消息内容已发送至消息处理服务器,将消息2删除,由于消息3对应的消息内容在消息队列中已确认成功发送至消息处理服务器,消息3对应的删除标志位置1,然后将消息3及其对应的标志位从阻塞队列中移除。
综上所述,本申请实施例提供的消息发送方法,通过阻塞队列存储消息标识,并对消息队列中的对应的消息发送状态进行记录,当消息队列中的目标消息被成功发送至消息处理服务器后,阻塞队列对应修改与目标消息对应的目标标志位,且当目标标志位位于阻塞队列的队头位置时,将其进行移除。通过设置阻塞队列来保证消息队列中的消息能够成功发送至消息处理服务器,避免了消息在发送过程中丢失,提高了消息发送的可靠性。
以消息处理服务器未接收到目标消息为例,对本申请实施例中提供的消息发送方法进行说明,请参考图5,其示出了本申请另一个示例性实施例提供的消息发送方法的流程图。
步骤501,获取目标消息的消息发送状态。
该步骤内容与步骤201内容相同,在此不进行赘述。
步骤502,根据消息发送状态在阻塞队列中对目标消息对应的目标标志位进行状态修改。
在本申请实施例中,消息处理服务器还未接收到目标消息,即目标消息在消息队列中处于等待完成发送的状态,其中,等待完成发送状态包括:1、消息对应的处理条件还未达到,消息仍存储在消息队列中,处于等待发送的状态,即目标消息未发送;2、消息队列已将目标消息发送给消息处理服务器,但还未接收到消息处理器在接收到目标消息之后返回的确认信号,即目标消息仍处于发送中,是否能够成功发送还是未知的;3、消息队列已将目标消息发送给消息处理服务器,但在发送过程中消息丢失,导致消息处理服务器未接收到消息,故在预设时间段内未返回确认信号,目标消息对应为发送失败。
步骤503,响应于目标标志位用于指示目标消息等待发送,指示消息队列发送目标消息。
消息在消息队列中的不同发送状态与阻塞队列中标志位指示目标消息的状态想对应。示意性的,响应于目标消息发送失败,指示消息队列重新发送目标消息至消息处理服务器;响应于目标消息发送未发送,指示消息队列发送目标消息;响应于目标消息发送完成,等待目标标志位进行状态修改。
其中,当阻塞队列接收到来自消息队列发送的确认字符时,根据确认字符将目标标志位的状态修改为指示目标消息已发送,并针对已发送状态的目标标志位,根据目标标志位在阻塞队列中的队列位置进行对应处理。
示意性的,请参考图6,其示出了阻塞队列中标志位对应的处理逻辑。其中,阻塞队列对队列中消息对应的标志位进行轮询,判断标志位记录的对应消息状态600,当标志位对应于指示消息已发送610时,判断标志位对应的删除标志位是否为“true”611,其中,删除标志位与标志位对应的消息状态及队列位置确定,若是,则更新传输历史612,并从阻塞队列中移除该标志位613;若否,则返回至判断消息状态600。当标志位对应于指示消息未发送620时,对应删除标志位设置为“false”621,指示消息队列为消息设置消息ID622,修改标志位对应为指示消息发送中623,并指示消息队列将消息内容发送至消息处理服务器624。当标志位对应于指示消息发送失败630,对应删除标志位设置为“false”631,并指示消息队列根据消息ID回溯消息内容,修改标志位对应为指示消息发送中632,并指示消息队列将消息内容发送至消息处理服务器633。当标志位对应指示消息发送中640,对应删除标志位设置为“false”641,并返回至判断消息状态600。
综上所述,本申请实施例提供的消息发送方法,通过阻塞队列存储消息标识,并对消息队列中的对应的消息发送状态进行记录,根据存储的消息发送状态对对消息队列中的消息进行指示执行对应处理,确保消息队列中的目标消息成功发送至消息处理服务器后,再将位于阻塞队列的队头位置的目标标志位,从阻塞队列中移除。通过设置阻塞队列来保证消息队列中的消息能够成功发送至消息处理服务器,避免了消息在发送过程中丢失,提高了消息发送的可靠性。
请参考图7,其示出了一示意性实施例所提供的消息发送系统的结构框图,该系统包括:
阻塞队列710,用于获取目标消息的消息发送状态711;根据所述消息发送状态在阻塞队列中对所述目标消息对应的目标标志位进行状态修改712;响应于所述目标标志位用于指示所述目标消息已发送,根据所述阻塞队列所述目标标志位所处的队列位置,对所述目标标志位进行对应处理713。
在一个可选的实施例中,所述阻塞队列710,还用于响应于所述目标标志位位于所述阻塞队列的队头位置,从所述阻塞队列移除所述目标标志位;更新剩余的所述标志位在所述阻塞队列中的所述队列位置。
在一个可选的实施例中,所述目标标志位对应有删除标志位,当所述目标标志位位于所述阻塞队列的非队头位置时,所述删除标志位对应为0;所述阻塞队列710,还用于判断所述目标标志位是否位于所述阻塞队列的所述队头位置;响应于所述目标标志位位于所述阻塞队列的所述队头位置,将所述目标标志位对应的所述删除标志位设置为1;响应于所述删除标志位对应为1,从所述阻塞队列移除所述目标标志位。
在一个可选的实施例中,所述阻塞队列710,还用于响应于所述目标标志位位于所述阻塞队列的所述非队头位置,等待所述目标标志位所处的所述队列位置之前的标志位被移除;响应于所述目标标志位移动至所述队头位置,从所述阻塞队列移除所述目标标志位。
在一个可选的实施例中,所述阻塞队列710,还用于响应于所述目标标志位用于指示所述目标消息等待完成发送,指示所述消息队列发送所述目标消息。
在一个可选的实施例中,所述阻塞队列710,还用于响应于所述目标消息发送失败,指示所述消息队列重新发送所述目标消息至所述消息处理服务器;响应于所述目标消息未发送,指示所述消息队列发送所述目标消息;响应于所述目标消息发送中,等待所述目标标志位进行所述状态修改。
在一个可选的实施例中,所述阻塞队列710,还用于接收所述消息队列发送的确认字符,所述确认字符由所述消息队列成功将所述目标消息发送至所述消息处理服务器时生成;根据所述确认字符将所述目标标志位的状态修改为指示所述目标消息已发送。
消息队列720,用于将所述目标消息发送至消息处理服务器721;根据所述目标消息的发送结果生成确认字符722;向所述阻塞队列发送所述目标消息对应的所述确认字符723;
消息处理服务器730,用于对所述目标消息进行对应处理731。
综上所述,本申请实施例提供的消息发送系统,通过阻塞队列存储消息标识,并对消息队列中的对应的消息发送状态进行记录,当消息队列中的目标消息被成功发送至消息处理服务器后,阻塞队列对应修改与目标消息对应的目标标志位,且当目标标志位位于阻塞队列的队头位置时,将其进行移除。通过设置阻塞队列来保证消息队列中的消息能够成功发送至消息处理服务器,避免了消息在发送过程中丢失,提高了消息发送的可靠性。
请参考图8,是本申请一个示例性实施例提供的消息发送装置的结构框图,该装置应用于阻塞队列,该装置包括:
获取模块810,用于获取目标消息的消息发送状态,所述消息发送状态用于指示所述目标消息从消息队列发送至消息处理服务器的状态;
修改模块820,用于根据所述消息发送状态在阻塞队列中对所述目标消息对应的目标标志位进行状态修改,所述阻塞队列中包括与消息对应的依次排列的标志位,所述消息为待通过所述消息队列进行发送的内容;
处理模块830,用于响应于所述目标标志位用于指示所述目标消息已发送,根据所述阻塞队列所述目标标志位所处的队列位置,对所述目标标志位进行对应处理。
在一个可选的实施例中,所述处理模块830,还包括:
处理单元,用于响应于所述目标标志位位于所述阻塞队列的队头位置,从所述阻塞队列移除所述目标标志位;
更新单元,用于更新剩余的所述标志位在所述阻塞队列中的所述队列位置。
在一个可选的实施例中,所述目标标志位对应有删除标志位,当所述目标标志位位于所述阻塞队列的非队头位置时,所述删除标志位对应为不可删除状态;
所述处理单元,还包括:
判断子单元,用于判断所述目标标志位是否位于所述阻塞队列的所述队头位置;
设置子单元,用于响应于所述目标标志位位于所述阻塞队列的所述队头位置,将所述目标标志位对应的所述删除标志位设置为可删除状态;
所述处理单元,还用于响应于所述删除标志位对应为可删除状态,从所述阻塞队列移除所述目标标志位。
在一个可选的实施例中,所述处理单元,还用于响应于所述目标标志位位于所述阻塞队列的所述非队头位置,等待所述目标标志位所处的所述队列位置之前的标志位被移除;
所述处理单元,还用于响应于所述目标标志位移动至所述队头位置,从所述阻塞队列移除所述目标标志位。
在一个可选的实施例中,所述处理模块830,还用于响应于所述目标标志位用于指示所述目标消息等待完成发送,指示所述消息队列发送所述目标消息。
在一个可选的实施例中,所述处理单元,还用于响应于所述目标消息发送失败,指示所述消息队列重新发送所述目标消息至所述消息处理服务器;
所述处理单元,还用于响应于所述目标消息未发送,指示所述消息队列发送所述目标消息;
所述处理单元,还用于响应于所述目标消息发送中,等待所述目标标志位进行所述状态修改。
在一个可选的实施例中,所述装置还包括:
接收模块(图8中未示出),用于接收所述消息队列发送的确认字符,所述确认字符由所述消息队列成功将所述目标消息发送至所述消息处理服务器时生成;
处理模块830,还用于根据所述确认字符将所述目标标志位的状态修改为指示所述目标消息已发送。
综上所述,本申请实施例提供的消息发送装置,通过阻塞队列存储消息标识,并对消息队列中的对应的消息发送状态进行记录,当消息队列中的目标消息被成功发送至消息处理服务器后,阻塞队列对应修改与目标消息对应的目标标志位,且当目标标志位位于阻塞队列的队头位置时,将其进行移除。通过设置阻塞队列来保证消息队列中的消息能够成功发送至消息处理服务器,避免了消息在发送过程中丢失,提高了消息发送的可靠性。
图9示出了本申请一个示例性实施例提供的服务器的结构示意图。该具体来讲:
服务器900包括中央处理单元(Central Processing Unit,CPU)901、包括随机存取存储器(Random Access Memory,RAM)902和只读存储器(Read Only Memory,ROM)903的系统存储器904,以及连接系统存储器904和中央处理单元901的系统总线905。服务器900还包括用于存储操作系统913、应用程序914和其他程序模块915的大容量存储设备906。
大容量存储设备906通过连接到系统总线905的大容量存储控制器(未示出)连接到中央处理单元901。大容量存储设备906及其相关联的计算机可读介质为服务器900提供非易失性存储。也就是说,大容量存储设备906可以包括诸如硬盘或者紧凑型光盘只读存储器(Compact Disc Read Only Memory,CD-ROM)驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、带电可擦可编程只读存储器(Electrically Erasable Programmable Read Only Memory,EEPROM)、闪存或其他固态存储其技术,CD-ROM、数字通用光盘(Digital Versatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器904和大容量存储设备906可以统称为存储器。
根据本申请的各种实施例,服务器900还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器900可以通过连接在系统总线905上的网络接口单元911连接到网络912,或者说,也可以使用网络接口单元911来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。
本申请的实施例还提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的消息发送方法。可选地,该计算机设备可以是终端,也可以是服务器。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行,以实现上述各方法实施例提供的消息发送方法。
本申请的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中任一所述的消息发送方法。
可选地,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、固态硬盘(SSD,Solid State Drives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (9)

1.一种消息发送方法,其特征在于,所述方法包括:
获取目标消息的消息发送状态,所述消息发送状态用于指示所述目标消息从消息队列发送至消息处理服务器的状态;
根据所述消息发送状态在阻塞队列中对所述目标消息对应的目标标志位进行状态修改,所述阻塞队列中包括与消息对应的依次排列的标志位,所述消息为待通过所述消息队列进行发送的内容;
响应于所述目标标志位用于指示所述目标消息已发送且所述目标标志位位于所述阻塞队列的队头位置,从所述阻塞队列移除所述目标标志位;更新剩余的所述标志位在所述阻塞队列中的所述队列位置;
响应于所述目标标志位用于指示所述目标消息已发送且所述目标标志位位于所述阻塞队列的非队头位置,等待所述目标标志位所处的队列位置之前的标志位被移除;
响应于所述目标标志位用于指示所述目标消息已发送且所述目标标志位移动至所述队头位置,从所述阻塞队列移除所述目标标志位。
2.根据权利要求1所述的方法,其特征在于,所述目标标志位对应有删除标志位,当所述目标标志位位于所述阻塞队列的非队头位置时,所述删除标志位对应为不可删除状态;
所述方法还包括:
判断所述目标标志位是否位于所述阻塞队列的所述队头位置;
响应于所述目标标志位位于所述阻塞队列的所述队头位置,将所述目标标志位对应的所述删除标志位设置为可删除状态;
响应于所述删除标志位对应为可删除状态,从所述阻塞队列移除所述目标标志位。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
响应于所述目标标志位用于指示所述目标消息等待完成发送,指示所述消息队列发送所述目标消息。
4.根据权利要求3所述的方法,其特征在于,所述指示所述消息队列发送所述目标消息,包括:
响应于所述目标消息发送失败,指示所述消息队列重新发送所述目标消息至所述消息处理服务器;
响应于所述目标消息未发送,指示所述消息队列发送所述目标消息;
响应于所述目标消息发送中,等待所述目标标志位进行所述状态修改。
5.根据权利要求4所述的方法,其特征在于,所述等待所述目标标志位进行所述状态修改之后,还包括:
接收所述消息队列发送的确认字符,所述确认字符由所述消息队列成功将所述目标消息发送至所述消息处理服务器时生成;
根据所述确认字符将所述目标标志位的状态修改为指示所述目标消息已发送。
6.一种消息发送系统,其特征在于,所述系统包括:
阻塞队列,用于获取目标消息的消息发送状态;根据所述消息发送状态在阻塞队列中对所述目标消息对应的目标标志位进行状态修改;响应于所述目标标志位用于指示所述目标消息已发送且所述目标标志位位于所述阻塞队列的队头位置,从所述阻塞队列移除所述目标标志位;更新剩余的所述标志位在所述阻塞队列中的所述队列位置;响应于所述目标标志位用于指示所述目标消息已发送且所述目标标志位位于所述阻塞队列的非队头位置,等待所述目标标志位所处的队列位置之前的标志位被移除;响应于所述目标标志位用于指示所述目标消息已发送且所述目标标志位移动至所述队头位置,从所述阻塞队列移除所述目标标志位;
消息队列,用于将所述目标消息发送至消息处理服务器;根据所述目标消息的发送结果生成确认字符;向所述阻塞队列发送所述目标消息对应的所述确认字符;
消息处理服务器,用于对所述目标消息进行对应处理。
7.一种消息发送装置,其特征在于,所述装置包括:
获取模块,用于获取目标消息的消息发送状态,所述消息发送状态用于指示所述目标消息从消息队列发送至消息处理服务器的状态;
修改模块,用于根据所述消息发送状态在阻塞队列中对所述目标消息对应的目标标志位进行状态修改,所述阻塞队列中包括与消息对应的依次排列的标志位,所述消息为待通过所述消息队列进行发送的内容;
处理单元,用于响应于所述目标标志位指示所述目标消息已发送且所述目标标志位位于所述阻塞队列的队头位置,从所述阻塞队列移除所述目标标志位;
更新单元,用于更新剩余的所述标志位在所述阻塞队列中的所述队列位置;
所述处理单元,还用于响应于所述目标标志位指示所述目标消息已发送且所述目标标志位位于所述阻塞队列的非队头位置,等待所述目标标志位所处的队列位置之前的标志位被移除;
所述处理单元,还用于响应于所述目标标志位指示所述目标消息已发送且所述目标标志位移动至所述队头位置,从所述阻塞队列移除所述目标标志位。
8.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一段程序,所述至少一段程序由所述处理器加载并执行以实现如权利要求1至5任一所述的消息发送方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如权利要求1至5任一所述的消息发送方法。
CN202110076528.7A 2021-01-20 2021-01-20 消息发送方法、系统、装置、设备及可读存储介质 Active CN112887196B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110076528.7A CN112887196B (zh) 2021-01-20 2021-01-20 消息发送方法、系统、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110076528.7A CN112887196B (zh) 2021-01-20 2021-01-20 消息发送方法、系统、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN112887196A CN112887196A (zh) 2021-06-01
CN112887196B true CN112887196B (zh) 2023-03-24

Family

ID=76051037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110076528.7A Active CN112887196B (zh) 2021-01-20 2021-01-20 消息发送方法、系统、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN112887196B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535428B (zh) * 2021-07-09 2023-05-23 中星电子股份有限公司 请求消息和响应消息的处理方法、装置、设备和介质
CN114070712B (zh) * 2021-07-14 2024-05-24 北京天元创新科技有限公司 消息不落地的网管告警处理方法及装置
CN113724100B (zh) * 2021-08-27 2024-05-10 广东电网有限责任公司 一种分布式集群的电网监控告警消息处理方法
CN115022382B (zh) * 2022-08-10 2023-01-20 广东电网有限责任公司 一种基于异步队列的计量信息交互平台及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7310339B1 (en) * 1999-03-31 2007-12-18 British Telecommunications Public Limited Company Packet messaging method and apparatus
CN106980582A (zh) * 2016-01-18 2017-07-25 中兴通讯股份有限公司 数据处理方法和装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000062506A1 (en) * 1999-03-31 2000-10-19 British Telecommunications Public Limited Company Packet messaging method and apparatus
CN100521661C (zh) * 2006-03-16 2009-07-29 腾讯科技(深圳)有限公司 一种向群组发送即时消息的方法
CN101634956B (zh) * 2009-08-25 2012-08-08 华为技术有限公司 多核处理器消息调度方法及调度器
US8964538B2 (en) * 2010-09-24 2015-02-24 Broadcom Corporation Method and apparatus for supporting differentiated performance for multiple categories of packets in a passive optical network
CN102571635A (zh) * 2012-01-18 2012-07-11 浪潮(北京)电子信息产业有限公司 一种消息传输方法及设备
CN103532823B (zh) * 2012-07-04 2018-11-23 中兴通讯股份有限公司 物联网消息处理方法、装置及系统
CN104252466A (zh) * 2013-06-26 2014-12-31 阿里巴巴集团控股有限公司 流计算处理方法、设备和系统
CN105610730B (zh) * 2014-11-19 2020-03-13 中兴通讯股份有限公司 Cpu与网络设备之间的消息交互方法及系统
CN107819823A (zh) * 2017-09-26 2018-03-20 深圳市诚壹科技有限公司 一种信息处理方法、服务器及计算机可读存储介质
CN109739660B (zh) * 2018-12-24 2020-10-16 新华三技术有限公司合肥分公司 异常消息处理方法及装置
CN111538600B (zh) * 2020-02-25 2023-09-12 远景智能国际私人投资有限公司 消息处理方法、装置、计算机设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7310339B1 (en) * 1999-03-31 2007-12-18 British Telecommunications Public Limited Company Packet messaging method and apparatus
CN106980582A (zh) * 2016-01-18 2017-07-25 中兴通讯股份有限公司 数据处理方法和装置

Also Published As

Publication number Publication date
CN112887196A (zh) 2021-06-01

Similar Documents

Publication Publication Date Title
CN112887196B (zh) 消息发送方法、系统、装置、设备及可读存储介质
CN115004673B (zh) 消息推送方法、装置、电子设备及计算机可读介质
CN109361525B (zh) 重启分布式部署多服务的方法、装置、控制终端及介质
CN110650164B (zh) 文件的上传方法、装置、终端以及计算机存储介质
CN102890631A (zh) 基于持久化消息队列传输消息的方法及消息传输装置
CN110912805B (zh) 消息读取状态的同步方法、终端、服务端及系统
CN111416823A (zh) 一种数据传输方法和装置
CN112437001A (zh) 保证消息可靠性投递与消费方法、装置
CN112069195A (zh) 基于数据库的消息传输方法、装置、电子设备及存储介质
CN113672284B (zh) 一种指令执行方法、系统、电子设备以及存储介质
CN114637611A (zh) 基于消息队列的信息处理方法、装置及计算机设备
CN111405215A (zh) 视频存储方法、装置、云服务器和存储介质
CN112969198A (zh) 数据传输方法、终端及存储介质
CN111917859B (zh) 数据传输方法、装置、计算机设备以及存储介质
CN111431952A (zh) 消息推送方法、装置及系统,计算机存储介质和电子设备
CN112865927B (zh) 消息送达验证方法、装置、计算机设备和存储介质
CN112838980A (zh) 一种消息处理方法、系统、装置、电子设备及存储介质
CN106557262B (zh) 一种数据处理方法及装置
CN113794622B (zh) 消息处理方法、装置、电子设备及存储介质
CN112217903B (zh) 大文件传输方法、装置、服务器及存储介质
CN103701667A (zh) 服务器的心跳的监控方法、装置及系统
CN107704557B (zh) 操作互斥数据的处理方法、装置、计算机设备和存储介质
CN110764697A (zh) 一种数据管理方法及装置
CN114285807B (zh) 一种报文信息管理方法、装置、服务器和存储介质
CN113626409B (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
GR01 Patent grant