CN109428682B - Message processing confirmation method and device - Google Patents
Message processing confirmation method and device Download PDFInfo
- Publication number
- CN109428682B CN109428682B CN201710731150.3A CN201710731150A CN109428682B CN 109428682 B CN109428682 B CN 109428682B CN 201710731150 A CN201710731150 A CN 201710731150A CN 109428682 B CN109428682 B CN 109428682B
- Authority
- CN
- China
- Prior art keywords
- message
- messages
- batch
- processing
- rabbitmq
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 162
- 238000012790 confirmation Methods 0.000 title claims abstract description 143
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000003860 storage Methods 0.000 claims description 16
- 238000001514 detection method Methods 0.000 claims description 3
- 238000010200 validation analysis Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 18
- 238000010586 diagram Methods 0.000 description 14
- 101000741965 Homo sapiens Inactive tyrosine-protein kinase PRAG1 Proteins 0.000 description 12
- 102100038659 Inactive tyrosine-protein kinase PRAG1 Human genes 0.000 description 12
- 238000004590 computer program Methods 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 238000010923 batch production Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 101100465000 Mus musculus Prag1 gene Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
- H04L1/1621—Group acknowledgement, i.e. the acknowledgement message defining a range of identifiers, e.g. of sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The invention discloses a method and a device for confirming message processing.A message calling end sends a batch message confirmation request to EasyNet Q; and after the EasyNet Q receives the batch message confirmation request, acquiring the counting identification with the minimum value in the current unprocessed message. Then, the batch acknowledgement is performed for all the processed messages with the counting identifier with the minimum value, that is, the batch acknowledgement message is sent to the RabbitMQ once, so that the acknowledgement for all the processed messages with the counting identifier with the minimum value can be realized at the same time, that is, the acknowledgement for a plurality of messages can be realized by sending the acknowledgement message once. The method realizes one-time ACK on the batch processed messages, thereby improving the performance of the whole message consumption process. Moreover, the phenomenon that ACK is sent to the message which is not processed on the service is avoided, and the message is prevented from being lost.
Description
Technical Field
The invention belongs to the technical field of computers, and particularly relates to a message processing confirmation method and device.
Background
The RabbitMQ is one of the most widely applied open source message queues at present, and in order to enable a user to interact with the RabbitMQ in various scenes, the RabbitMQ officials and third parties release RabbitMQ clients applicable to various development languages.
EasyNet Q is one of the RabbitMQ clients which are realized by open sources, and the EasyNet Q is developed by using C # language and provides a capability of conveniently and reliably accessing the RabbitMQ for a program written based on Net, so that the EasyNet Q is widely applied to the Net environment. When using EasyNet Q to consume messages in a RabbitMQ, EasyNet Q automatically sends an acknowledgement message (i.e., ACK) to the RabbitMQ after the message is processed, and the RabbitMQ considers that the corresponding message has been processed by the caller upon receiving the ACK, thereby deleting the corresponding message in the queue.
However, when a message (especially a persistent message that needs to be written to the hard disk) is consumed quickly, the performance of the whole message consumption process is reduced by the mechanism that each message automatically sends an ACK; furthermore, if the thread that obtains the message is only the dispatcher and the other thread that actually handles the message, this automatic ACK mechanism may also result in notifying the RabbitMQ of the completion of consumption before the message is actually handled, which may cause the loss of the message due to any exception that occurs during the handling of the message.
Disclosure of Invention
In view of the above problems, the present invention provides a message processing confirmation method and device to solve the technical problem that the performance of the message consumption process is reduced because EasyNetQ automatically sends an ACK for each message. The specific technical scheme is as follows:
in a first aspect, the present application provides a message processing confirmation method, which is applied to a client easylnetq, and includes:
receiving a batch message confirmation request sent by a message calling terminal, wherein the batch message confirmation request is used for enabling the EasyNet Q to send batch processing confirmation messages aiming at least two messages to a message queue RabbitMQ;
acquiring all messages to be confirmed according to the batch message confirmation requests, wherein the messages to be confirmed are messages which are processed at present and do not send processing confirmation messages;
sending a batch processing confirmation message to the RabbitMQ, wherein the batch processing confirmation message is used for indicating that all the messages to be confirmed are processed completely.
Optionally, the obtaining all messages to be confirmed according to the batch message confirmation request includes:
obtaining a counting identifier with the minimum value in the messages which are not processed completely currently, wherein the counting identifier is used for representing the sequence of reading the messages from the RabbitMQ, and the smaller the value of the counting identifier is, the earlier the messages are read from the RabbitMQ is;
and determining that the messages corresponding to the counting identifiers with the counting identifier numerical values smaller than the minimum numerical value are the messages to be confirmed.
Optionally, the obtaining, according to the batch message confirmation request, a counting identifier with a minimum value in the current unprocessed message includes:
analyzing the batch message confirmation request to obtain a counting identifier with the minimum numerical value in the messages which are not processed and finished;
or,
receiving a message processing state sent by the message calling terminal; and determining the counting identifier with the minimum value in the unprocessed and completed message according to the message processing state.
Optionally, the method further comprises: and when detecting that the service processing on the target message fails, sending a denial message to the RabbitMQ, wherein the denial message is used for enabling the RabbitMQ to mark the state of the target message as a readable state again.
In a second aspect, the present application further provides a message processing confirmation method, applied to a message invoking end, including:
reading a message to be processed from a client EasyNet Q;
detecting whether the current state meets a preset condition, wherein the preset condition comprises the following steps: the time from the last time of sending the batch message confirmation requests meets a preset time period, or the number of the messages which are not confirmed reaches a preset number;
when the current state meets the preset condition, sending a batch message confirmation request to the EasyNetQ, wherein the batch message confirmation request is used for enabling the EasyNetQ to send confirmation messages aiming at least two messages to a message queue RabbitMQ.
Optionally, the method further comprises:
when detecting that the business processing on the target message fails, sending a message processing failure message to the EasyNet Q, so that the EasyNet Q sends a denial message to the RabbitMQ after receiving the message processing failure message, wherein the denial message is used for enabling the RabbitMQ to re-mark the state of the target message as a readable state.
In a third aspect, the present application provides a message processing confirmation apparatus, which is applied to a client easylnetq, and includes:
a receiving unit, configured to receive a batch message confirmation request sent by a message calling end, where the batch message confirmation request is used to enable the easynet q to send batch processing confirmation messages for at least two messages to a message queue RabbitMQ;
an obtaining unit, configured to obtain all messages to be confirmed according to the batch message confirmation requests, where the messages to be confirmed are messages that are currently processed and that have not sent a processing confirmation message;
and the sending unit is used for sending a batch processing confirmation message to the RabbitMQ, wherein the batch processing confirmation message is used for indicating that all the messages to be confirmed are processed completely.
In a fourth aspect, the present application further provides a message processing confirmation apparatus, applied to a message invoking end, including:
the reading unit is used for reading the message to be processed from the client EasyNet Q;
the detection unit is used for detecting whether the current state meets a preset condition, and the preset condition comprises the following steps: the time from the last time of sending the batch message confirmation requests meets a preset time period, or the number of the messages which are not confirmed reaches a preset number;
and the sending unit is used for sending a batch message confirmation request to the EasyNet Q when the current state meets the preset condition, wherein the batch message confirmation request is used for enabling the EasyNet Q to send confirmation messages aiming at least two messages to a message queue RabbitMQ.
In a fifth aspect, the present application provides a storage medium having stored thereon a program which, when executed by a processor, implements any of the message processing confirmation methods described above.
In a sixth aspect, the present application further provides a processor, where the processor is configured to execute a program, and the program executes any one of the above message processing confirmation methods.
In a seventh aspect, the present application provides a storage medium having a program stored thereon, where the program is executed by a processor to implement any one of the above message processing confirmation methods.
In an eighth aspect, the present application further provides a processor, where the processor is configured to execute a program, and the program executes any one of the above message processing confirmation methods.
The message processing confirmation method provided by the invention is characterized in that a message calling end sends a batch message confirmation request to a client (namely EasyNet Q); and after the EasyNet Q receives the batch message confirmation request, acquiring the counting identification with the minimum value in the current unprocessed message. Then, the batch acknowledgement is performed for all the processed messages with the counting identifier with the minimum value, that is, the batch acknowledgement message is sent to the RabbitMQ once, so that the acknowledgement for all the processed messages with the counting identifier with the minimum value can be realized at the same time, that is, the acknowledgement for a plurality of messages can be realized by sending the acknowledgement message once. The method realizes one-time ACK on the batch processed messages, thereby improving the performance of the whole message consumption process. Moreover, the phenomenon that ACK is sent to the message which is not processed on the service is avoided, and the message is prevented from being lost.
The foregoing description is only an overview of the technical solutions of the present invention, and the embodiments of the present invention are described below in order to make the technical means of the present invention more clearly understood and to make the above and other objects, features, and advantages of the present invention more clearly understandable.
Drawings
Various other advantages and benefits will become apparent to those of ordinary skill in the art upon reading the following detailed description of the preferred embodiments. The drawings are only for purposes of illustrating the preferred embodiments and are not to be construed as limiting the invention. Also, like reference numerals are used to refer to like parts throughout the drawings. In the drawings:
fig. 1 is a flowchart illustrating a message processing confirmation method according to an embodiment of the present application;
fig. 2 is a flowchart illustrating a process of acquiring all messages to be acknowledged according to an embodiment of the present application;
FIG. 3 is a flow chart illustrating another message processing acknowledgement method according to an embodiment of the present application;
fig. 4 is a flowchart illustrating a further message processing confirmation method according to an embodiment of the present application;
fig. 5 is a block diagram illustrating a message processing confirmation apparatus according to an embodiment of the present application;
FIG. 6 is a block diagram of an acquisition unit according to an embodiment of the present application;
fig. 7 is a block diagram illustrating another message processing confirmation apparatus according to an embodiment of the present application.
Detailed Description
Exemplary embodiments of the present application will be described in more detail below with reference to the accompanying drawings. While exemplary embodiments of the present application are shown in the drawings, it should be understood that the present application may be embodied in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
Referring to fig. 1, a flowchart of a message processing confirmation method according to an embodiment of the present application is shown, and the method is applied to a client EasyNetQ of a RabbitMQ, as shown in fig. 1, the method may include the following steps:
s110, EasyNet Q receives the batch message confirmation request sent by the message calling end.
The batch message acknowledgement request is for the EasyNet Q to send a batch process acknowledgement message for at least two messages to the message queue RabbitMQ.
The message calling end can call the message and perform corresponding service processing on the message; the EasyNet Q is actually a component, after the EasyNet Q component is installed at the message calling end, the message in the RabbitMQ can be read by calling the EasyNet Q, and when the state of the message calling end meets a preset condition (for example, the current time is far from the last time that a batch message confirmation request (ACK request) meets a preset period, or the number of unconfirmed messages reaches a preset number), the ACK request is sent to the EasyNet Q so as to trigger the EasyNet Q to send the ACK to the RabbitMQ.
And S120, acquiring all messages to be confirmed by the EasyNet Q according to the batch message confirmation requests.
The message to be confirmed is a message which is processed at present and does not send a processing confirmation message.
In one embodiment of the present application, as shown in fig. 2, S120 may include the steps of:
s121, obtaining the counting identification with the minimum value in the current unprocessed information.
Wherein, the counting identification is used for representing the sequence of reading the messages from the RabbitMQ, and the smaller value of the counting identification indicates the earlier message is read from the RabbitMQ.
After receiving the ACK request, EasyNet Q acquires a counting identifier with the minimum value in the current unprocessed message; the unprocessed completed message refers to a message in which the corresponding service process is not completed.
After the EasyNet Q is connected with the RabbitMQ every time, a plurality of channels are established according to specific use conditions, in addition, the EasyNet Q creates an independent channel for the production or consumption of the RabbitMQ, each channel sequentially transmits the communication messages between the EasyNet Q and the RabbitMQ, and the channels cannot be easily destroyed after being created.
Each message consumed by EasyNetQ from RabbitMQ carries a delavirTag as a mark; DeliverTag is a monotonically increasing positive integer, and the scope of DeliverTag is limited to the channel to which it belongs. The counter label in this embodiment is delavetag.
In one embodiment of the application, the message calling terminal transmits the counting identification with the minimum value in the unprocessed completed message to the easy net q. And the batch message confirmation request sent by the message calling end carries the counting identification with the minimum value in the unprocessed messages, and the EasyNet Q analyzes the batch message confirmation request to obtain the counting identification with the minimum value in the unprocessed messages. In the application scene, the message calling end records the message processing state, and when a batch message confirmation request needs to be sent, the counting identifier with the minimum value in the current unprocessed message is obtained according to the recorded message processing state and is transmitted to the easy Net Q.
In another embodiment of the present application, the EasyNetQ itself obtains the counting identifier with the smallest value in the message that is not processed. And sending the processing state of the message to the EasyNet Q after the message calling end processes one message, so that the EasyNet Q can know the message processing state of the message calling end in real time and record the processing state of each message. Thus, the EasyNet Q determines the counting identifier with the minimum value in the messages which are not processed according to the processing state of each message recorded by the EasyNet Q and the processing state of the message.
And S122, determining that the messages corresponding to the counting identifiers with the counting identifier value smaller than the minimum value are all messages to be confirmed.
S130, EasyNet Q sends batch processing confirmation information to the RabbitMQ.
The batch processing confirmation message is used for indicating that the message of which the value of the counting identifier is smaller than the counting identifier with the minimum value is processed completely.
In one embodiment of the application, the ACK method is added to the EasyNetQ's IAdvancedBus interface and implemented in the RabbitAdvancedBus class. The method supports that the ACK of a plurality of messages is completed through a single request according to the acquired delaverTag.
For example, code rabbitadvancedbus.cs implementing the ACK method is as follows:
when EasyNet Q detects that the multiple entry parameter value in the ACK method is True, the RabbitMQ considers that the message corresponding to the delavetag value smaller than the delavetag value for calling the entry parameter at this time is successfully processed by EasyNet Q. "multiple" is used to indicate batch validation.
In the message processing and confirming method provided by the embodiment, a message calling end sends a batch message confirmation request to a client (namely, EasyNetQ); and after the EasyNet Q receives the batch message confirmation request, acquiring the counting identification with the minimum value in the current unprocessed message. Then, the batch acknowledgement is performed for all the processed messages with the counting identifier with the minimum value, that is, the batch acknowledgement message is sent to the RabbitMQ once, so that the acknowledgement for all the processed messages with the counting identifier with the minimum value can be realized at the same time, that is, the acknowledgement for a plurality of messages can be realized by sending the acknowledgement message once. The method realizes one-time ACK on the batch processed messages, thereby improving the performance of the whole message consumption process. Moreover, the phenomenon that ACK is sent to the message which is not processed on the service is avoided, and the message is prevented from being lost.
Referring to fig. 3, a flowchart of another message processing confirmation method according to an embodiment of the present application is shown, where the method is applied to EasyNetQ, and the method may further include the following steps based on the embodiment shown in fig. 1:
s210, when the failure of the service processing of the target message is detected, a denial message is sent to the RabbitMQ.
The target message refers to any one of the messages read from the RabbitMQ.
And when the service processing of the message by the message calling end fails, the message calling end calls a NACK method in EasyNetQ to realize NACK.
When the service processing of the message calling side on the message fails, the message processing failure message is sent to the EasyNet Q, so that the EasyNet Q can acquire the message of the service processing failure. EasyNetQ then sends a negative acknowledgment message, namely a NACK, to the RabbitMQ. The NACK is used to cause the RabbitMQ to re-mark the state of the message with failed service processing as a readable state so that the message can be retrieved by subsequent consumption requests and corresponding service processing can be performed.
In an embodiment of the present application, an NAck method may be added to an iadvancetbus interface of EasyNetQ, and the method is implemented in a RabbitAdvancedBus class, and a core code RabbitAdvancedBus.
Wherein, the DeliveryTag is a counting identification corresponding to the message with the failure of the service processing; "false" means that no bulk commit is made, since bulk commit NACK makes no sense; "true" means that the message sending the NACK needs to go back into the queue so that it can be retrieved again and reprocessed.
According to the message processing confirmation method provided by the embodiment, after the service processing of the message calling end fails, the EasyNet Q can detect the message with the failed service processing, and then the EasyNet Q sends NACK to the RabbitMQ, so that the RabbitMQ marks the message as a readable state again, the message can be acquired again by subsequent message requests and corresponding service processing is carried out, and the message loss in the RabbitMQ is avoided.
Referring to fig. 4, a flowchart of another message processing confirmation method according to an embodiment of the present application is shown, where the method is applied to a message caller, which is a party that needs to read a message, and may be an application program, for example.
As shown in fig. 4, the method may include the steps of:
and S310, reading the message to be processed from the EasyNet Q, and performing service processing.
S320, after the service processing is finished, detecting whether the current state meets a preset condition; if yes, go to S330; if not, return to execute S310.
The message calling end can flexibly select batch acknowledgement or automatic ACK according to the information such as the number of messages contained in each channel, whether the messages are persistent messages and the like. If a batch ACK mechanism is needed, registering a ManuaAckHandlerRunner when an EasyNet Q is initialized at a message calling end; when the original automatic ACK mechanism is used, HandlerRunner needs to be registered (the original automatic ACK realization method).
In an embodiment of the present application, if a batch acknowledgement is selected, a manualackhandler runner type derived from the handler runner type is implemented, and a GetAckStrategy method and the like are rewritten, so that an ACK is not automatically sent after the message is processed through the type of processed message.
After batch acknowledgement is selected, whether to send an ACK request is determined according to whether the current state meets a preset condition, for example, the preset condition may include that the time for sending the ACK request last time meets a preset time period, or that the number of unacknowledged messages has reached a preset number.
S330, sending a batch message confirmation request to EasyNet Q.
The bulk message acknowledgement request is used to cause EasyNet Q to send an acknowledgement message to the message queue RabbitMQ. After receiving the ACK sent by easyletq, the RabbitMQ confirms that the message has been processed, and may delete the message from the memory.
S340, after the service processing fails, sending a message processing failure message to EasyNet Q, so that the EasyNet Q sends a denial message to the RabbitMQ after receiving the message processing failure message.
The negative acknowledgement message is used to cause the RabbitMQ to re-mark the state of the target message as a readable state.
When the business processing of the target message fails, the message calling end or the business processing end sends a message processing failure message to EasyNet Q; and after receiving the NACK, the RabbitMQ confirms that the message processing fails and marks the message in a readable state again so that the target message can be acquired again by subsequent consumption requests and is subjected to corresponding service processing.
In the message processing and confirming method provided by the embodiment, a message calling end sends a batch message confirmation request to a client (namely, EasyNetQ); and after the EasyNet Q receives the batch message confirmation request, acquiring the counting identification with the minimum value in the current unprocessed message. Then, the batch acknowledgement is performed for all the processed messages with the counting identifier with the minimum value, that is, the batch acknowledgement message is sent to the RabbitMQ once, so that the acknowledgement for all the processed messages with the counting identifier with the minimum value can be realized at the same time, that is, the acknowledgement for a plurality of messages can be realized by sending the acknowledgement message once. The method realizes one-time ACK on the batch processed messages, thereby improving the performance of the whole message consumption process. Moreover, the phenomenon that ACK is sent to the message which is not processed on the service is avoided, and the message is prevented from being lost.
Corresponding to the above message processing confirmation method embodiment, the application also provides a message processing confirmation device embodiment.
Referring to fig. 5, a block diagram of a message processing confirmation apparatus according to an embodiment of the present application is shown, where the apparatus is applied to EasyNetQ, and as shown in fig. 5, the apparatus may include: a receiving unit 110, an obtaining unit 120 and a sending unit 130.
The receiving unit 110 is configured to receive a batch message confirmation request sent by a message invoking end.
The batch message acknowledgement request is for the EasyNet Q to send a batch process acknowledgement message for at least two messages to the message queue RabbitMQ.
And when the state of the message calling terminal meets a preset condition (for example, the current time meets a preset period from the last ACK sending request, or the number of unacknowledged messages reaches a preset number), sending an ACK request to EasyNet Q to trigger EasyNet Q to send ACK to RabbitMQ.
The bulk message acknowledgement request is for the EasyNetQ to send a bulk process acknowledgement message for at least two messages to the message queue RabbitMQ.
An obtaining unit 120, configured to obtain all messages to be confirmed according to the batch message confirmation requests.
The message to be confirmed is a message which is processed at present and does not send a processing confirmation message.
Referring to fig. 6, a block diagram of an obtaining unit according to an embodiment of the present application is shown, and as shown in fig. 6, the obtaining unit 120 may include: an acquisition subunit 121 and a determination subunit 122.
An obtaining subunit 121, configured to obtain a count identifier with a minimum value in a message that is currently not processed.
The counting identification is used for representing the sequence of reading the messages from the RabbitMQ, the smaller value of the counting identification indicates that the messages are read earlier from the RabbitMQ, and conversely, the larger value of the counting identification indicates that the messages are read later from the RabbitMQ.
After receiving the ACK request, EasyNet Q acquires a counting identifier with the minimum value in the current unprocessed message; the unprocessed completed message refers to a message in which the corresponding service process is not completed.
In one embodiment of the application, the message calling terminal transmits the counting identification with the minimum value in the unprocessed completed message to the easy net q. And the batch message confirmation request sent by the message calling end carries the counting identification with the minimum value in the unprocessed messages, and the EasyNet Q analyzes the batch message confirmation request to obtain the counting identification with the minimum value in the unprocessed messages. In the application scene, the message calling end records the message processing state, and when a batch message confirmation request needs to be sent, the counting identifier with the minimum value in the current unprocessed message is obtained according to the recorded message processing state and is transmitted to the easy Net Q.
In another embodiment of the present application, the EasyNetQ itself obtains the counting identifier with the smallest value in the message that is not processed. And sending the processing state of the message to the EasyNet Q after the message calling end processes one message, so that the EasyNet Q can know the message processing state of the message calling end in real time and record the processing state of each message. Thus, the EasyNet Q determines the counting identifier with the minimum value in the messages which are not processed according to the processing state of each message recorded by the EasyNet Q and the processing state of the message.
The determining subunit 122 is configured to determine that all messages corresponding to the counting identifier whose counting identifier value is smaller than the smallest value are to-be-determined messages.
A sending unit 130, configured to send a batch processing acknowledgement message to the RabbitMQ.
The batch processing confirmation message is used for indicating that all the messages to be confirmed are processed completely.
The message processing and confirming device provided by the embodiment sends a batch message confirmation request to a client (namely, EasyNetQ) by a message calling end; and after the EasyNet Q receives the batch message confirmation request, acquiring the counting identification with the minimum value in the current unprocessed message. Then, the batch acknowledgement is performed for all the processed messages with the counting identifier with the minimum value, that is, the batch acknowledgement message is sent to the RabbitMQ once, so that the acknowledgement for all the processed messages with the counting identifier with the minimum value can be realized at the same time, that is, the acknowledgement for a plurality of messages can be realized by sending the acknowledgement message once. The device realizes one-time ACK (acknowledgement character) of the batch processed messages, thereby improving the performance of the whole message consumption process. Moreover, the phenomenon that ACK is sent to the message which is not processed on the service is avoided, and the message is prevented from being lost.
Optionally, the message processing confirmation apparatus further includes a negative confirmation message sending unit 140.
A negative acknowledgement message sending unit 140, configured to send a negative acknowledgement message to the RabbitMQ after detecting that the service processing performed on the target message fails.
The denial message is used to cause the RabbitMQ to re-mark the state of the target message as a readable state.
The target message refers to any one of the messages read from the RabbitMQ.
When the service processing of the message calling side on the message fails, the message processing failure message is sent to the EasyNet Q, so that the EasyNet Q can acquire the message of the service processing failure. EasyNetQ then sends a negative acknowledgment message, namely a NACK, to the RabbitMQ. The NACK is used to cause the RabbitMQ to re-mark the state of the message with failed service processing as a readable state so that the message can be retrieved by subsequent consumption requests and corresponding service processing can be performed.
In the message processing and confirming device provided by this embodiment, after the service processing of the message calling end fails, the easylNet q can detect the message with the failed service processing, and then the easylNet q sends NACK to the RabbitMQ, so that the RabbitMQ marks the message as a readable state again, so that the message can be retrieved by a subsequent message request and corresponding service processing is performed, thereby avoiding the loss of the message in the RabbitMQ.
Referring to fig. 7, a block diagram of another message processing confirmation apparatus according to an embodiment of the present application is shown, where the apparatus is applied to a message caller, which is a party that needs to read a message, and may be an application program, for example.
As shown in fig. 7, the apparatus may include: a reading unit 210, a detection unit 220, and a transmission unit 230.
And the reading unit 210 is used for reading the message to be processed from the client EasyNet Q.
A detecting unit 220, configured to detect whether a current state meets a preset condition;
the preset conditions include: and the time from the last time of sending the batch message confirmation requests meets a preset time period, or the number of the messages which are not confirmed reaches a preset number.
The message calling end can flexibly select batch acknowledgement or automatic ACK according to the information such as the number of messages contained in each channel, whether the messages are persistent messages and the like. If a batch ACK mechanism is needed, registering a ManuaAckHandlerRunner when an EasyNet Q is initialized at a message calling end; when the original automatic ACK mechanism is used, HandlerRunner needs to be registered (the original automatic ACK realization method).
In an embodiment of the present application, if a batch acknowledgement is selected, a manualackhandler runner type derived from the handler runner type is implemented, and a GetAckStrategy method and the like are rewritten, so that an ACK is not automatically sent after the message is processed through the type of processed message.
And after batch confirmation is selected, judging whether to send an ACK request according to whether the current state meets a preset condition.
And the sending unit 230 is configured to send a batch message confirmation request to the EasyNetQ when the current state meets a preset condition.
The bulk message acknowledgement request is for the EasyNetQ to send acknowledgement messages for at least two messages to the message queue RabbitMQ.
The bulk message acknowledgement request is used to cause EasyNet Q to send an acknowledgement message to the message queue RabbitMQ. After receiving the ACK sent by easyletq, the RabbitMQ confirms that the message has been processed, and may delete the message from the memory.
Optionally, the message processing confirmation apparatus may further include: and the failure message sending unit 240 is configured to send a message processing failure message to the easylNet Q after detecting that the service processing performed on the target message fails, so that the easylNet Q sends a negative acknowledgement message to the RabbitMQ after receiving the message processing failure message.
The denial message is used to cause the RabbitMQ to re-mark the state of the target message as a readable state.
When the business processing of the target message fails, the message calling end or the business processing end sends a message processing failure message to EasyNet Q; and after receiving the NACK, the RabbitMQ confirms that the message processing fails and marks the message in a readable state again so that the target message can be acquired again by subsequent consumption requests and is subjected to corresponding service processing.
The message processing and confirming device provided by the embodiment sends a batch message confirmation request to a client (namely, EasyNetQ) by a message calling end; and after the EasyNet Q receives the batch message confirmation request, acquiring the counting identification with the minimum value in the current unprocessed message. Then, the batch acknowledgement is performed for all the processed messages with the counting identifier with the minimum value, that is, the batch acknowledgement message is sent to the RabbitMQ once, so that the acknowledgement for all the processed messages with the counting identifier with the minimum value can be realized at the same time, that is, the acknowledgement for a plurality of messages can be realized by sending the acknowledgement message once. The device realizes one-time ACK (acknowledgement character) of the batch processed messages, thereby improving the performance of the whole message consumption process. Moreover, the phenomenon that ACK is sent to the message which is not processed on the service is avoided, and the message is prevented from being lost.
The message processing confirmation device comprises a processor and a memory, wherein the receiving unit, the acquiring unit, the sending unit, the non-acknowledgement message sending unit and the like are stored in the memory as program units, and the processor executes the program units stored in the memory to realize corresponding functions.
The processor comprises a kernel, and the kernel calls the corresponding program unit from the memory. The kernel can set one or more than one, and the confirmation of a plurality of messages can be realized by sending a confirmation message once through adjusting kernel parameters.
The memory may include volatile memory in a computer readable medium, Random Access Memory (RAM) and/or nonvolatile memory such as Read Only Memory (ROM) or flash memory (flash RAM), and the memory includes at least one memory chip.
An embodiment of the present invention provides a storage medium on which a program is stored, the program implementing the message processing confirmation method when executed by a processor.
The embodiment of the invention provides a processor, which is used for running a program, wherein the message processing confirmation method is executed when the program runs.
The embodiment of the invention provides equipment, which comprises a processor, a memory and a program which is stored on the memory and can run on the processor, wherein the processor executes the program and realizes the following steps:
receiving a batch message confirmation request sent by a message calling terminal, wherein the batch message confirmation request is used for enabling the EasyNet Q to send batch processing confirmation messages aiming at least two messages to a message queue RabbitMQ;
acquiring all messages to be confirmed according to the batch message confirmation requests, wherein the messages to be confirmed are messages which are processed at present and do not send processing confirmation messages;
sending a batch processing confirmation message to the RabbitMQ, wherein the batch processing confirmation message is used for indicating that all the messages to be confirmed are processed completely.
Optionally, the obtaining all messages to be confirmed according to the batch message confirmation request includes:
obtaining a counting identifier with the minimum value in the messages which are not processed completely currently, wherein the counting identifier is used for representing the sequence of reading the messages from the RabbitMQ, and the smaller the value of the counting identifier is, the earlier the messages are read from the RabbitMQ is;
and determining that the messages corresponding to the counting identifiers with the counting identifier numerical values smaller than the minimum numerical value are the messages to be confirmed.
Optionally, the obtaining, according to the batch message confirmation request, a counting identifier with a minimum value in the current unprocessed message includes:
analyzing the batch message confirmation request to obtain a counting identifier with the minimum numerical value in the messages which are not processed and finished;
or,
receiving a message processing state sent by the message calling terminal; and determining the counting identifier with the minimum value in the unprocessed and completed message according to the message processing state.
Optionally, the method further comprises: and when detecting that the service processing on the target message fails, sending a denial message to the RabbitMQ, wherein the denial message is used for enabling the RabbitMQ to mark the state of the target message as a readable state again.
The present application also provides another device, which includes a processor, a memory, and a program stored in the memory and executable on the processor, and when the processor executes the program, the following steps are implemented:
reading a message to be processed from a client EasyNet Q;
detecting whether the current state meets a preset condition, wherein the preset condition comprises the following steps: the time from the last time of sending the batch message confirmation requests meets a preset time period, or the number of the messages which are not confirmed reaches a preset number;
when the current state meets the preset condition, sending a batch message confirmation request to the EasyNetQ, wherein the batch message confirmation request is used for enabling the EasyNetQ to send confirmation messages aiming at least two messages to a message queue RabbitMQ.
Optionally, the method further comprises:
when detecting that the business processing on the target message fails, sending a message processing failure message to the EasyNet Q, so that the EasyNet Q sends a denial message to the RabbitMQ after receiving the message processing failure message, wherein the denial message is used for enabling the RabbitMQ to re-mark the state of the target message as a readable state.
The device herein may be a server, a PC, a PAD, a mobile phone, etc.
The present application further provides a computer program product adapted to perform a program for initializing the following method steps when executed on a data processing device:
receiving a batch message confirmation request sent by a message calling terminal, wherein the batch message confirmation request is used for enabling the EasyNet Q to send batch processing confirmation messages aiming at least two messages to a message queue RabbitMQ;
acquiring all messages to be confirmed according to the batch message confirmation requests, wherein the messages to be confirmed are messages which are processed at present and do not send processing confirmation messages;
sending a batch processing confirmation message to the RabbitMQ, wherein the batch processing confirmation message is used for indicating that all the messages to be confirmed are processed completely.
Optionally, the obtaining all messages to be confirmed according to the batch message confirmation request includes:
obtaining a counting identifier with the minimum value in the messages which are not processed completely currently, wherein the counting identifier is used for representing the sequence of reading the messages from the RabbitMQ, and the smaller the value of the counting identifier is, the earlier the messages are read from the RabbitMQ is;
and determining that the messages corresponding to the counting identifiers with the counting identifier numerical values smaller than the minimum numerical value are the messages to be confirmed.
Optionally, the obtaining, according to the batch message confirmation request, a counting identifier with a minimum value in the current unprocessed message includes:
analyzing the batch message confirmation request to obtain a counting identifier with the minimum numerical value in the messages which are not processed and finished;
or,
receiving a message processing state sent by the message calling terminal; and determining the counting identifier with the minimum value in the unprocessed and completed message according to the message processing state.
Optionally, the method further comprises: and when detecting that the service processing on the target message fails, sending a denial message to the RabbitMQ, wherein the denial message is used for enabling the RabbitMQ to mark the state of the target message as a readable state again.
The present application also provides another computer program product adapted to perform a program for initializing the following method steps when executed on a data processing device:
reading a message to be processed from a client EasyNet Q;
detecting whether the current state meets a preset condition, wherein the preset condition comprises the following steps: the time from the last time of sending the batch message confirmation requests meets a preset time period, or the number of the messages which are not confirmed reaches a preset number;
when the current state meets the preset condition, sending a batch message confirmation request to the EasyNetQ, wherein the batch message confirmation request is used for enabling the EasyNetQ to send confirmation messages aiming at least two messages to a message queue RabbitMQ.
Optionally, the method further comprises:
when detecting that the business processing on the target message fails, sending a message processing failure message to the EasyNet Q, so that the EasyNet Q sends a denial message to the RabbitMQ after receiving the message processing failure message, wherein the denial message is used for enabling the RabbitMQ to re-mark the state of the target message as a readable state.
As will be appreciated by one skilled in the art, embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the application. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
In a typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include forms of volatile memory in a computer readable medium, Random Access Memory (RAM) and/or non-volatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). The memory is an example of a computer-readable medium.
Computer-readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), Read Only Memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), Digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information that can be accessed by a computing device. As defined herein, a computer readable medium does not include a transitory computer readable medium such as a modulated data signal and a carrier wave.
It should also be noted that the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other identical elements in the process, method, article, or apparatus that comprises the element.
As will be appreciated by one skilled in the art, embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The above are merely examples of the present application and are not intended to limit the present application. Various modifications and changes may occur to those skilled in the art. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application should be included in the scope of the claims of the present application.
Claims (10)
1. A message processing confirmation method is applied to a client EasyNetQ, and is characterized by comprising the following steps:
receiving a batch message confirmation request sent by a message calling terminal, wherein the batch message confirmation request is used for enabling the EasyNet Q to send batch processing confirmation messages aiming at least two messages to a message queue RabbitMQ;
acquiring all messages to be confirmed according to the batch message confirmation requests, wherein the messages to be confirmed are messages which are processed at present and do not send processing confirmation messages;
sending a batch processing confirmation message to the RabbitMQ, wherein the batch processing confirmation message is used for indicating that all the messages to be confirmed are processed;
and when detecting that the service processing on the target message fails, sending a denial message to the RabbitMQ, wherein the denial message is used for enabling the RabbitMQ to mark the state of the target message as a readable state again.
2. The method of claim 1, wherein the obtaining all messages to be acknowledged according to the batch message acknowledgement request comprises:
obtaining a counting identifier with the minimum value in the messages which are not processed completely currently, wherein the counting identifier is used for representing the sequence of reading the messages from the RabbitMQ, and the smaller the value of the counting identifier is, the earlier the messages are read from the RabbitMQ is;
and determining that the messages corresponding to the counting identifiers with the counting identifier numerical values smaller than the minimum numerical value are the messages to be confirmed.
3. The method of claim 2, wherein obtaining the counting identifier with the smallest value in the currently unprocessed messages according to the batch message acknowledgement request comprises:
analyzing the batch message confirmation request to obtain a counting identifier with the minimum numerical value in the messages which are not processed and finished;
or,
receiving a message processing state sent by the message calling terminal; and determining the counting identifier with the minimum value in the unprocessed and completed message according to the message processing state.
4. A message processing confirmation method is applied to a message calling end and is characterized by comprising the following steps:
reading a message to be processed from a client EasyNet Q;
detecting whether the current state meets a preset condition, wherein the preset condition comprises the following steps: the time from the last time of sending the batch message confirmation requests meets a preset time period, or the number of the messages which are not confirmed reaches a preset number;
when the current state meets the preset condition, sending a batch message confirmation request to the EasyNetQ, wherein the batch message confirmation request is used for enabling the EasyNetQ to send confirmation messages aiming at least two messages to a message queue RabbitMQ;
when detecting that the business processing on the target message fails, sending a message processing failure message to the EasyNet Q, so that the EasyNet Q sends a denial message to the RabbitMQ after receiving the message processing failure message, wherein the denial message is used for enabling the RabbitMQ to re-mark the state of the target message as a readable state.
5. A message processing confirmation apparatus applied to a client EasyNetQ, comprising:
a receiving unit, configured to receive a batch message confirmation request sent by a message calling end, where the batch message confirmation request is used to enable the easynet q to send batch processing confirmation messages for at least two messages to a message queue RabbitMQ;
an obtaining unit, configured to obtain all messages to be confirmed according to the batch message confirmation requests, where the messages to be confirmed are messages that are currently processed and that have not sent a processing confirmation message;
a sending unit, configured to send a batch processing acknowledgement message to the RabbitMQ, where the batch processing acknowledgement message is used to indicate that all the messages to be acknowledged have been processed;
and the denial message sending unit is used for sending a denial message to the RabbitMQ after detecting that the service processing on the target message fails, wherein the denial message is used for enabling the RabbitMQ to re-mark the state of the target message as a readable state.
6. A message processing confirmation apparatus applied to a message invoking end, comprising:
the reading unit is used for reading the message to be processed from the client EasyNet Q;
the detection unit is used for detecting whether the current state meets a preset condition, and the preset condition comprises the following steps: the time from the last time of sending the batch message confirmation requests meets a preset time period, or the number of the messages which are not confirmed reaches a preset number;
a sending unit, configured to send a batch message acknowledgement request to the easylNet Q when the current state meets the preset condition, where the batch message acknowledgement request is used for enabling the easylNet Q to send acknowledgement messages for at least two messages to a message queue RabbitMQ;
and the failure message sending unit is used for sending a message processing failure message to the EasyNet Q after detecting that the service processing on the target message fails, so that the EasyNet Q sends a denial message to the RabbitMQ after receiving the message processing failure message, wherein the denial message is used for enabling the RabbitMQ to re-mark the state of the target message into a readable state.
7. A storage medium having a program stored thereon, wherein the program, when executed by a processor, implements the message processing confirmation method of any one of claims 1 to 3.
8. A processor for executing a program, wherein the program executes to perform the message processing confirmation method according to any one of claims 1 to 3.
9. A storage medium having a program stored thereon, wherein the program, when executed by a processor, implements the message processing confirmation method of claim 4.
10. A processor for running a program, wherein the program executes to perform the message processing validation method of claim 4.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710731150.3A CN109428682B (en) | 2017-08-23 | 2017-08-23 | Message processing confirmation method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710731150.3A CN109428682B (en) | 2017-08-23 | 2017-08-23 | Message processing confirmation method and device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109428682A CN109428682A (en) | 2019-03-05 |
CN109428682B true CN109428682B (en) | 2021-06-29 |
Family
ID=65499226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710731150.3A Active CN109428682B (en) | 2017-08-23 | 2017-08-23 | Message processing confirmation method and device |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109428682B (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110018914B (en) * | 2019-03-26 | 2021-08-13 | 中国人民银行清算总中心 | Shared memory based message acquisition method and device |
CN113140269A (en) * | 2020-01-19 | 2021-07-20 | 浙江爱多特大健康科技有限公司 | Information interaction method, device, equipment and medium |
CN114090305B (en) * | 2022-01-19 | 2022-04-26 | 飞狐信息技术(天津)有限公司 | Business auditing method and device |
CN114979249B (en) * | 2022-03-30 | 2024-08-09 | 阿里巴巴(中国)有限公司 | Message handle creation method, message pushing method, and related devices and systems |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105264843A (en) * | 2013-06-07 | 2016-01-20 | 苹果公司 | Managing pending acknowledgement packets in a communication device |
CN105471722A (en) * | 2015-12-31 | 2016-04-06 | 深圳前海微众银行股份有限公司 | Message processing method and device |
CN106453564A (en) * | 2016-10-18 | 2017-02-22 | 北京京东尚科信息技术有限公司 | Elastic cloud distributed massive request processing method, device and system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8699525B2 (en) * | 2004-09-10 | 2014-04-15 | Interdigital Technology Corporation | Method for sending an acknowledgement to an ingress mesh point in a mesh network and a medium access control frame format |
US20100088187A1 (en) * | 2008-09-24 | 2010-04-08 | Chris Courtney | System and method for localized and/or topic-driven content distribution for mobile devices |
EP2827503A1 (en) * | 2013-07-15 | 2015-01-21 | Alcatel Lucent | Rateless encoding |
-
2017
- 2017-08-23 CN CN201710731150.3A patent/CN109428682B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105264843A (en) * | 2013-06-07 | 2016-01-20 | 苹果公司 | Managing pending acknowledgement packets in a communication device |
CN105471722A (en) * | 2015-12-31 | 2016-04-06 | 深圳前海微众银行股份有限公司 | Message processing method and device |
CN106453564A (en) * | 2016-10-18 | 2017-02-22 | 北京京东尚科信息技术有限公司 | Elastic cloud distributed massive request processing method, device and system |
Non-Patent Citations (2)
Title |
---|
"Evaluation of highly available and fault-tolerant middleware clustered architectures using RabbitMQ";Maciej Rostanski; Krzysztof Grochla; Aleksander Seman;《2014 Federated Conference on Computer Science and Information Systems》;20140910;全文 * |
"PaaS云基础架构中消息中间件的设计与实现";夏千林;《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》;20150430;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109428682A (en) | 2019-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109428682B (en) | Message processing confirmation method and device | |
CN110768912B (en) | API gateway current limiting method and device | |
US9361165B2 (en) | Automated merger of logically associated messages in a message queue | |
CN109600375B (en) | Message tracking method and device, electronic equipment and storage medium | |
KR102167613B1 (en) | Message push method and device | |
US11979761B2 (en) | Method and apparatus for detecting time series data | |
CN109951494B (en) | Simulation data processing method and device, simulation equipment and storage medium | |
US20190278590A1 (en) | Automated generation of service definitions for message queue application clients | |
US9973306B2 (en) | Freshness-sensitive message delivery | |
CN107276970B (en) | Unbinding and binding method and device | |
CN110764930B (en) | Request or response processing method and device based on message mode | |
CN108366098B (en) | A method and device for data interaction of network nodes | |
CN116016653A (en) | Information pushing method and device of blockchain, electronic equipment and storage medium | |
CN112579639A (en) | Data processing method and device, electronic equipment and storage medium | |
US9652311B2 (en) | Optimization of non-volatile memory in message queuing | |
CN110309028B (en) | Monitoring information acquisition method, service monitoring method, device and system | |
CN112866306B (en) | Resource management method and cloud service platform | |
CN116384956B (en) | Message batch sending method, device, equipment and storage medium | |
CN112583879B (en) | Request processing method, device and system, storage medium and electronic equipment | |
CN108965431B (en) | Method and device for realizing event-driven architecture by IBM (International Business machines corporation) host | |
CN115002000B (en) | Fault tolerance method, device, equipment and storage medium for abnormal interface | |
CN108243210A (en) | A kind of information-pushing method and Information Push Server | |
CN109408244B (en) | Application data acquisition method and device based on Azure WebJob | |
CN109062642B (en) | Control message notification method and device | |
CN108089927B (en) | Method and device for realizing message communication based on Web Worker |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100080 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |