Multi-user, multi-channel message scheduling method, apparatus, equipment and storage medium

By creating a sending channel index and a message index structure, and creating a first-in-first-out cache queue of different channel types for each user, the problem of user interface lag and long-term unresponsiveness in multi-user request scenarios is solved, and efficient message sending optimization is achieved.

CN120416782BActive Publication Date: 2026-04-03SHENZHEN WECHAT CLOUD TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-03-20
Publication Date
2026-04-03

AI Technical Summary

Technical Problem

In existing technologies, user interface lag or prolonged unresponsiveness in multi-user request scenarios, especially during peak periods or when sending large batches of messages, leads to a poor user experience.

Method used

Create a sending channel index structure and a message index structure, create a first-in-first-out message cache queue of different channel types for each user, and optimize message sending order and channel utilization through message ID mapping and flow rate detection.

Benefits of technology

It enables queuing and priority sending of messages to the same user and different users, solving the problems of user interface lag and long periods of unresponsiveness, and improving message sending efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120416782B_ABST
    Figure CN120416782B_ABST
Patent Text Reader

Abstract

This application discloses a multi-user, multi-channel message scheduling method, system, device, and storage medium. The method includes: creating a sending channel index structure and a message index structure, and creating a first-in-first-out message cache queue for each user with different channel types; caching the acquired user message at the tail of the message cache queue, and mapping the message ID to the message index structure, and mapping the sending channel ID to the sending channel index structure; according to the sending channel index structure, writing the message to be sent from the user's message cache queue to the corresponding sending channel, and deleting the message ID of the message to be sent from the message index structure; performing flow rate detection on each sending channel; until the ID data in the message index structures of all users is empty. SMS messages submitted by different users have the same sending priority, solving the problem of poor user experience such as user interface lag or long periods of unresponsiveness in multi-user request scenarios in the prior art.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of multi-user message sending technology, and in particular to a multi-user, multi-channel message scheduling method, apparatus, device, and storage medium. Background Technology

[0002] Currently, the server of the user's smart device control system and SMS gateway service sending system receives multiple messages from different users and stores them in a queue. It processes all the messages or file data of one user before processing the data of the next user, basically following the principle of first-come, first-served. When the program receives a large number of messages or files submitted by a user at a certain moment, the amount of messages submitted greatly exceeds the flow rate of the sending channel, thus blocking other users' messages from being sent in a timely manner, causing some client users to wait for a long time for a response.

[0003] In one scenario, when a large number of users request offline messages from their devices during peak hours, the backend server's message sending channel pushes a large number of user messages in a short period of time. If the principle of "first come, first served" is followed, it may lead to poor user experience issues such as user interface lag or long periods of unresponsiveness for later requests.

[0004] In another scenario, when the SMS gateway service sending system is processing a large number of SMS messages submitted by enterprise users in a short period of time, and the number of submitted SMS messages is far greater than the maximum flow rate of the SMS channel, if the SMS service system sends all of a user's SMS messages before sending the next user's SMS messages, the enterprise user's client will not receive SMS status reports for a long time. Summary of the Invention

[0005] The purpose of this application is to propose a multi-user, multi-channel message scheduling method, apparatus, device, and storage medium to solve the problem of poor user experience in multi-user request scenarios, such as user interface lag or long-term unresponsiveness.

[0006] To address the aforementioned technical problems, this application provides a multi-user, multi-channel message scheduling method, employing the following technical solution:

[0007] Step 100: Create a sending channel index structure and a message index structure, and create a first-in-first-out message buffer queue for each user with different channel types;

[0008] Step 200: According to the order and the channel type, cache the acquired user messages to the tail of the message cache queue, and map the message ID to the message index structure. Obtain the sending channel ID that has not reached the saturation state, and map the sending channel ID to the sending channel index structure.

[0009] Step 300: Read one message to be sent from the head of each message cache queue of each user, write the message to be sent from the user's message cache queue into the corresponding sending channel according to the sending channel index structure, and delete the message ID of the message to be sent from the message index structure.

[0010] Step 400: Perform flow rate detection for each sending channel. If the current flow rate of the sending channel reaches the flow rate limit, then the sending channel ID of that sending channel is deleted from the sending channel index structure.

[0011] Step 500: Repeat steps 200-400 until the ID data in the message index structure of all users is empty.

[0012] Furthermore, step 200 includes:

[0013] Step 210: Obtain the service identifier, time identifier, and auto-incrementing sequence code for each user;

[0014] Step 220: Generate a globally unique message ID for each message using the service identifier, time identifier, and auto-incrementing sequence code.

[0015] Furthermore, after step 220, step 200 also includes:

[0016] Step 230: Determine the channel type of the received message from the current user and obtain the channel type of the current message;

[0017] Step 240: Traverse all channel types of the current user. If a message cache queue for the corresponding channel type exists, cache the current message at the end of the message cache queue for that channel type.

[0018] Step 250: If a message cache queue of the channel type does not exist, create a message cache queue of the channel type and cache the current message at the end of the newly created message cache queue.

[0019] Furthermore, step 300 includes:

[0020] Step 310: Obtain the mapping value of the current sending user in the message index structure;

[0021] Step 320: Determine the mapping value. If the mapping value is empty, delete other information elements of the current sending user in the message index structure.

[0022] Furthermore, after step 320, step 300 also includes:

[0023] Step 330: Determine the mapping value. If the mapping value is not empty, obtain the user information of the current sending user and the corresponding message cache queue ID.

[0024] Step 340: Record the user information and the corresponding message cache queue ID to trigger the next transmission.

[0025] Furthermore, step 400 includes:

[0026] Step 410: Obtain the message sending volume for the current sending period;

[0027] Step 420: If the message sending volume is greater than or equal to the specified sending volume threshold, then it is determined that the current flow rate of the sending channel has reached the flow rate limit.

[0028] Furthermore, between step 400 and step 500, the following is included:

[0029] Step 401: Obtain the information data from the sending channel index structure and the message index structure respectively;

[0030] Step 402: If the message index structure is not empty and the sending channel index structure is empty, obtain the message cache queue ID in the message index structure to trigger the next sending.

[0031] To address the aforementioned technical problems, this application also provides a multi-user, multi-channel message scheduling apparatus, employing the multi-user, multi-channel message scheduling method described in the first aspect, including:

[0032] The module is used to create the sending channel index structure and message index structure, and to create a set of first-in-first-out message buffer queues of different channel types for each user;

[0033] The mapping module is used to cache the acquired user messages to the tail of the message cache queue according to the order and the channel type, and map the message ID to the message index structure, obtain the sending channel ID that has not reached the saturation state, and map the sending channel ID to the sending channel index structure.

[0034] The writing module is used to read one message to be sent from the head of each message cache queue of each user, write the message to be sent from the user's message cache queue to the corresponding sending channel according to the sending channel index structure, and delete the message ID of the message to be sent from the message index structure.

[0035] The flow rate detection module is used to detect the flow rate of each transmission channel. If the current flow rate of the transmission channel reaches the flow rate limit, the transmission channel ID of that transmission channel is deleted from the transmission channel index structure.

[0036] To address the aforementioned technical problems, this application also provides a computer device, including a memory and a processor. The memory stores computer-readable instructions, and the processor executes the computer-readable instructions to implement the steps of a multi-user, multi-channel message scheduling method as described above.

[0037] To address the aforementioned technical problems, this application also provides a computer-readable storage medium storing computer-readable instructions. When these computer-readable instructions are executed by a processor, they implement the steps of a multi-user, multi-channel message scheduling method as described above.

[0038] Compared with the prior art, the embodiments of this application have the following main technical effects: by creating a sending channel index structure and a message index structure, the list of messages to be sent and the available sending channels can be quickly obtained, and a set of first-in-first-out message cache queues of different channel types can be created for each user. When sending, one message to be sent is read from the head of each message cache queue of each user, which can make SMS messages submitted by the same user queued for sending, while SMS messages submitted by different users have the same sending priority, thus solving the problem of poor user experience such as user interface lag or long-term unresponsiveness in multi-user request scenarios in the prior art. Attached Figure Description

[0039] To more clearly illustrate the solutions in this application, the accompanying drawings used in the description of the embodiments of this application will be briefly introduced below. Obviously, the accompanying drawings described below are some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0040] Figure 1 This is a flowchart of an embodiment of a multi-user, multi-channel message scheduling method according to this application;

[0041] Figure 2 yes Figure 1 A flowchart of a specific implementation of S200;

[0042] Figure 3 yes Figure 2 A flowchart of a specific implementation method following S220;

[0043] Figure 4 yes Figure 1 A flowchart of a specific implementation of S300;

[0044] Figure 5 yes Figure 4 A flowchart of a specific implementation method following S320;

[0045] Figure 6 yes Figure 1 A flowchart of a specific implementation of the S400;

[0046] Figure 7 yes Figure 1 A flowchart of a specific implementation between S400 and S500;

[0047] Figure 8 This is a flowchart illustrating a specific implementation of a multi-user, multi-channel message scheduling method in this application;

[0048] Figure 9 This is a flowchart illustrating a specific implementation of a multi-user, multi-channel message scheduling device according to this application;

[0049] Figure 10 This is a schematic diagram of the structure of one embodiment of the computer device according to this application. Detailed Implementation

[0050] The technical solutions of this invention will now be clearly and completely described with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this invention, and not all of them. Other embodiments obtained by those skilled in the art based on the embodiments of this invention without creative effort are all within the scope of protection of this invention.

[0051] In this document, the term "embodiment" means that a particular feature, structure, or characteristic described in connection with an embodiment may be included in at least one embodiment of this application. The appearance of this phrase in various places throughout the specification does not necessarily refer to the same embodiment, nor is it a separate or alternative embodiment mutually exclusive with other embodiments. It will be explicitly and implicitly understood by those skilled in the art that the embodiments described herein can be combined with other embodiments.

[0052] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application pertains; the terminology used herein in the specification of the application is for the purpose of describing particular embodiments only and is not intended to limit the application; the terms “comprising” and “having”, and any variations thereof, in the specification, claims, and foregoing description of the drawings of this application are intended to cover non-exclusive inclusion.

[0053] Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature. In the description of this application, "multiple" means two or more, unless otherwise explicitly specified.

[0054] The purpose of this application is to propose a multi-user, multi-channel message scheduling method, apparatus, device, and storage medium to solve the problem of poor user experience in multi-user request scenarios, such as user interface lag or long-term unresponsiveness.

[0055] To address the aforementioned technical problems, this application provides a multi-user, multi-channel message scheduling method, employing the following technical solution: Figure 1 , Figure 1 This is a flowchart of an embodiment of a multi-user, multi-channel message scheduling method according to this application; including:

[0056] S100. Create a sending channel index structure and a message index structure, and create a first-in-first-out message buffer queue for each user with different channel types.

[0057] In this embodiment, the message index structure primarily uses data structures such as hash tables or red-black trees that support high-performance, fast lookups. It records the mapping between users and message IDs in the message sending queues. The main function of this data structure is to allow the sending module in the scheduling device to quickly check whether all messages cached in the user queues have been sent, without needing to traverse and check each user queue, thus improving processing performance. The sending channel index structure also primarily uses data structures such as hash tables or red-black trees that support high-performance, fast lookups. It records the sending channel IDs that are in normal or idle status, allowing the sending module to check if any idle sending channels are available.

[0058] In this embodiment, as Figure 8 , Figure 8 This is a flowchart illustrating a specific implementation of a multi-user, multi-channel message scheduling method in this application; each user has multiple first-in-first-out message buffer queues, and each message buffer queue represents a channel type, such as China Unicom channel, China Mobile channel, China Telecom channel, etc.

[0059] S200. According to the order and channel type, the acquired user messages are cached at the end of the message cache queue, and the message ID is mapped to the message index structure. The sending channel ID that has not reached the saturation state is obtained, and the sending channel ID is mapped to the sending channel index structure.

[0060] In a preferred embodiment, such as Figure 2 , Figure 2 yes Figure 1 A flowchart of a specific implementation of S200; S200 includes: S210, obtaining the service identifier code, time identifier code and auto-incrementing sequence code for each user; S220, generating a globally unique message ID for each message using the service identifier code, time identifier code and auto-incrementing sequence code.

[0061] For example: using a 3-bit current service identifier (a unique service identifier pre-assigned to each program), a 10-bit current time identifier (system time in seconds), and a 6-bit auto-incrementing sequence code, a globally unique 19-bit unsigned long integer message ID is generated for the message (if the current program service number is 100, the current time is 1733582277, and the sequence number is 1, then the current message ID is 1001733582277000001).

[0062] In a preferred embodiment, such as Figure 3 , Figure 3 yes Figure 2 A flowchart of a specific implementation method following S220; following S220, S200 further includes:

[0063] S230. Determine the channel type of the received message from the current user and obtain the channel type of the current message; S240. Traverse all channel types of the current user. If a message cache queue for a channel type exists, cache the current message at the tail of the corresponding message cache queue; S250. If a message cache queue for a channel type does not exist, create a message cache queue for that channel type and cache the current message at the tail of the newly created message cache queue.

[0064] For example, if the SMS gateway service processing system server program receives an SMS message from client user 1, and the target SMS message is sent to a China Unicom user's mobile phone number, then the scheduling method in this embodiment needs to find the message cache queue corresponding to client user 1's China Unicom channel and store the message at the end of client user 1's China Unicom channel message cache queue. All user message sending queue groups, and the corresponding channel message cache queues in the queue groups, need to be stored in order of user ID or creation time.

[0065] S300: Read one message to be sent from the head of each message cache queue of each user, write the message to be sent from the user's message cache queue to the corresponding sending channel according to the sending channel index structure, and delete the message ID of the message to be sent from the message index structure.

[0066] In this embodiment, messages are continuously read from the head of the message cache queues from user 1 to user N. Each cached message cache queue in each user's message cache queue group reads one message in sequence and writes it to the message sending channel. Each time a message is successfully written to the sending channel, the message ID of that message is deleted from the message index structure.

[0067] In a preferred embodiment, such as Figure 4 , Figure 4 yes Figure 1 A flowchart of a specific implementation of S300; S300 includes: S310, obtaining the mapping value of the current sending user in the message index structure; S320, judging the mapping value, and if the mapping value is empty, deleting other information elements of the current sending user in the message index structure.

[0068] In this embodiment, if the mapping value in the message index structure corresponding to this user is empty, it means that the message in the user's cache queue has been sent. Then, other information elements of the current sending user in the message index structure are deleted.

[0069] Furthermore, such as Figure 5 , Figure 5 yes Figure 4 A flowchart of a specific implementation method following S320; following S320, S300 further includes:

[0070] S330. Determine the mapping value. If the mapping value is not empty, obtain the user information of the current sending user and the corresponding message cache queue ID. S340. Record the user information and the corresponding message cache queue ID to trigger the next sending.

[0071] In this embodiment, the message cache queue that was not sent in the previous sending cycle is sent first in the next sending cycle based on its message cache queue ID.

[0072] S400. Perform flow rate detection for each sending channel. If the current flow rate of the sending channel reaches the flow rate limit, then delete the sending channel ID of that sending channel from the sending channel index structure.

[0073] In a preferred embodiment, such as Figure 6 , Figure 6 yes Figure 1 A flowchart of a specific implementation of S400; S400 includes: S410, obtaining the message sending volume of the current sending period; S420, if the message sending volume is greater than or equal to the specified sending volume threshold, then determining that the current flow rate of the sending channel has reached the flow rate limit.

[0074] In this embodiment, the cumulative number of messages sent within a time period is obtained in real time to determine whether it is greater than or equal to the configured maximum number of messages sent. If it is greater, the channel has reached the flow rate limit. The channel ID is then removed from the sending channel index data structure, and the new cycle calculation time for flow rate control is reset to the current time. The number of messages sent in the next sending cycle is then reset to 0. If the flow rate is not exceeded, the process continues.

[0075] For example: If the flow rate calculation period of the sending channel is 1 second, the maximum sending flow rate is 1000 messages per second, the start time of the current sending period is 12:01:01.100 milliseconds on November 1, 2024, the current sending time is 12:01:01.800 milliseconds on November 1, 2024, and the cumulative sending volume of the current sending period is 1000, then the flow rate of this channel has been saturated, and no more data can be written to this channel in this sending period.

[0076] Furthermore, such as Figure 7 , Figure 7 yes Figure 1 A flowchart of a specific implementation between S400 and S500; Between S400 and S500, including: S401, obtaining information data from the sending channel index structure and the message index structure respectively; S402, if the message index structure is not empty and the sending channel index structure is empty, obtaining the message cache queue ID from the message index structure to trigger the next sending.

[0077] In this embodiment, when the value in the message index structure is not empty, but the sending channel index structure is empty, there are still messages in the user cache queue that have not been sent. The program needs to set the timer function to re-trigger the next sending cycle to continue sending user data, and process it first in the next sending cycle.

[0078] S500, S200-S400 are executed repeatedly until the ID data in the message index structure of all users is empty. By creating a sending channel index structure and a message index structure, the list of messages to be sent and the available sending channels can be quickly obtained. A first-in-first-out message cache queue of different channel types is created for each user. During sending, one message to be sent is read from the head of each message cache queue of each user. This allows SMS messages submitted by the same user to be sent in a queue, while SMS messages submitted by different users have the same sending priority. This solves the problem of poor user experience such as lag or long unresponsiveness in multi-user request scenarios in existing technologies.

[0079] To address the aforementioned technical problems, this application also provides a multi-user, multi-channel message scheduling device 600, such as... Figure 9 , Figure 9This is a flowchart illustrating a specific implementation of a multi-user, multi-channel message scheduling device according to this application; it employs the multi-user, multi-channel message scheduling method of the first aspect, including:

[0080] Create module 601 to create the sending channel index structure and message index structure, and create a set of first-in-first-out message buffer queues of different channel types for each user;

[0081] The mapping module 602 is used to cache the acquired user messages to the tail of the message cache queue according to the order and channel type, and map the message ID to the message index structure, obtain the sending channel ID that has not reached the saturation state, and map the sending channel ID to the sending channel index structure.

[0082] The writing module 603 is used to read one message to be sent from the head of each message cache queue of each user, write the message to be sent from the user's message cache queue to the corresponding sending channel according to the sending channel index structure, and delete the message ID of the message to be sent from the message index structure.

[0083] The flow rate detection module 604 is used to detect the flow rate of each transmission channel. If the current flow rate of the transmission channel reaches the flow rate limit, the transmission channel ID of that transmission channel is deleted from the transmission channel index structure.

[0084] To address the aforementioned technical problems, this application also provides a computer device, including a memory and a processor. The memory stores computer-readable instructions, and the processor executes the computer-readable instructions to implement the steps of the multi-user, multi-channel message scheduling method described above.

[0085] The computer equipment adopts the following technical solution: it includes a processor, a network module, and a memory, with the processor and memory interconnected through the network module.

[0086] This computer device can be a computer, server, workstation, or other similar device; it can also be a mobile device such as a mobile phone, tablet, or in-vehicle mobile terminal; or other devices with program execution capabilities. Its internal structure diagram can be as follows: Figure 10 As shown, Figure 10This is a schematic diagram of a computer device according to an embodiment of the present application. The computer device includes a processor, a memory, and a network module. The processor provides computing and control capabilities. The memory includes non-volatile and / or volatile storage media and internal memory. The non-volatile storage media stores an operating system, instructions, or code. The internal memory provides an environment for the operation of the operating system and instructions or code in the non-volatile storage media. When the instructions or code are executed by the processor, they implement the functions or steps of a multi-user, multi-channel message scheduling method. The network module of the computer device may include a network interface and / or a wireless network module, through which the computer device can communicate with other devices or service platforms. Furthermore, the computer device may also include a display screen and input devices, etc.

[0087] The memory is used to store computer programs, which include program instructions. The processor is configured to call the program instructions, and when the processor executes the instructions or code, it implements the steps of a multi-user, multi-channel message scheduling method as described above.

[0088] To address the aforementioned technical problems, this application also provides a computer-readable storage medium storing computer-readable instructions. When these computer-readable instructions are executed by a processor, they implement the steps of the multi-user, multi-channel message scheduling method described above.

[0089] The computer-readable storage medium stores a computer program, which includes program instructions that are implemented when executed by a processor. Figures 1 to 7 The following steps provide a multi-user, multi-channel message scheduling method, the implementation of which can be found in the above steps and will not be repeated here.

[0090] The aforementioned computer-readable storage medium can be an internal storage unit of a camera module distributed testing device provided in any of the foregoing embodiments or the aforementioned terminal device, such as a hard drive or memory of a computer device. The computer-readable storage medium can also be an external storage device of the computer device, such as a plug-in hard drive, smart media card (SMC), secure digital (SD) card, flash card, etc., provided on the computer device.

[0091] Furthermore, the computer-readable storage medium may include both internal storage units and external storage devices of the computer device. The computer-readable storage medium is used to store the computer program and other programs and data required by the computer device. The computer-readable storage medium can also be used to temporarily store data that has been output or will be output.

[0092] However, it should be understood that it is not required to implement all the components shown; more or fewer components may be implemented instead. Those skilled in the art will understand that the computer device described herein is a device capable of automatically performing numerical calculations and / or information processing according to pre-set or stored instructions, and its hardware includes, but is not limited to, microprocessors, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), digital signal processors (DSPs), embedded devices, etc.

[0093] The computer device can be a desktop computer, laptop, handheld computer, or cloud server, etc. The computer device can interact with the user via a keyboard, mouse, remote control, touchpad, or voice control.

[0094] Compared with the prior art, the embodiments of this application have the following main technical effects: by creating a sending channel index structure and a message index structure, the list of messages to be sent and the available sending channels can be quickly obtained, and a set of first-in-first-out message cache queues of different channel types can be created for each user. When sending, one message to be sent is read from the head of each message cache queue to which each user belongs, so that SMS messages submitted by the same user can be sent in a queue, while SMS messages submitted by different users have the same sending priority. This solves the problem of poor user experience such as user interface lag or long-term unresponsiveness in multi-user request scenarios in the prior art.

[0095] The above are merely preferred embodiments of the present invention and are not intended to limit the present invention. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the protection scope of the present invention.

Claims

1. A multi-user, multi-channel message scheduling method, characterized in that it includes: Step 100: Create a sending channel index structure and a message index structure, and create a first-in-first-out message buffer queue for each user with different channel types; Step 200: According to the order and the channel type, cache the acquired user messages to the tail of the message cache queue, and map the message ID to the message index structure. Obtain the sending channel ID that has not reached the saturation state, and map the sending channel ID to the sending channel index structure. Step 300: Read one message to be sent from the head of each message cache queue of each user, write the message to be sent from the user's message cache queue into the corresponding sending channel according to the sending channel index structure, and delete the message ID of the message to be sent from the message index structure. Step 400: Perform flow rate detection for each sending channel. If the current flow rate of the sending channel reaches the flow rate limit, then the sending channel ID of that sending channel is deleted from the sending channel index structure. Step 500: Repeat steps 200-400 until the ID data in the message index structure of all users is empty.

2. The multi-user, multi-channel message scheduling method according to claim 1, characterized in that, Step 200 includes: Step 210: Obtain the service identifier, time identifier, and auto-incrementing sequence code for each user; Step 220: Generate a globally unique message ID for each message using the service identifier, time identifier, and auto-incrementing sequence code.

3. The multi-user, multi-channel message scheduling method according to claim 2, characterized in that, Following step 220, step 200 further includes: Step 230: Determine the channel type of the received message from the current user and obtain the channel type of the current message; Step 240: Traverse all channel types of the current user. If a message cache queue for the corresponding channel type exists, cache the current message at the end of the message cache queue for that channel type. Step 250: If a message cache queue of the channel type does not exist, create a message cache queue of the channel type and cache the current message at the end of the newly created message cache queue.

4. The multi-user, multi-channel message scheduling method according to claim 1, characterized in that, Step 300 includes: Step 310: Obtain the mapping value of the current sending user in the message index structure; Step 320: Determine the mapping value. If the mapping value is empty, delete other information elements of the current sending user in the message index structure.

5. The multi-user, multi-channel message scheduling method according to claim 4, characterized in that, Following step 320, step 300 further includes: Step 330: Determine the mapping value. If the mapping value is not empty, obtain the user information of the current sending user and the corresponding message cache queue ID. Step 340: Record the user information and the corresponding message cache queue ID to trigger the next transmission.

6. The multi-user, multi-channel message scheduling method according to claim 1, characterized in that, Step 400 includes: Step 410: Obtain the message sending volume for the current sending period; Step 420: If the message sending volume is greater than or equal to the specified sending volume threshold, then it is determined that the current flow rate of the sending channel has reached the flow rate limit.

7. The multi-user, multi-channel message scheduling method according to claim 1, characterized in that, Between step 400 and step 500, the following is included: Step 401: Obtain the information data from the sending channel index structure and the message index structure respectively; Step 402: If the message index structure is not empty and the sending channel index structure is empty, obtain the message cache queue ID in the message index structure to trigger the next sending.

8. A multi-user, multi-channel message scheduling device, employing the multi-user, multi-channel message scheduling method according to any one of claims 1-7, characterized in that, include: The module is used to create the sending channel index structure and message index structure, and to create a set of first-in-first-out message buffer queues of different channel types for each user; The mapping module is used to cache the acquired user messages to the tail of the message cache queue according to the order and the channel type, and map the message ID to the message index structure, obtain the sending channel ID that has not reached the saturation state, and map the sending channel ID to the sending channel index structure. The writing module is used to read one message to be sent from the head of each message cache queue of each user, write the message to be sent from the user's message cache queue to the corresponding sending channel according to the sending channel index structure, and delete the message ID of the message to be sent from the message index structure. The flow rate detection module is used to detect the flow rate of each transmission channel. If the current flow rate of the transmission channel reaches the flow rate limit, the transmission channel ID of that transmission channel is deleted from the transmission channel index structure.

9. A computer device, characterized in that, The method includes a memory and a processor, wherein the memory stores computer-readable instructions, and the processor executes the computer-readable instructions to implement the steps of the multi-user multi-channel message scheduling method as described in any one of claims 1 to 7.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer-readable instructions, which, when executed by a processor, implement the steps of the multi-user multi-channel message scheduling method as described in any one of claims 1 to 7.

Citation Information

Patent Citations

  • Short message sending method, and short message platform

    CN108200544A

  • Message Queue Routing System

    US20230370519A1