A service processing method, apparatus, device, storage medium, and product
By introducing accounts as the minimum submission queue in the channel, and combining a three-level splitting mechanism of channel, account, and batch, the problem of poor flexibility in SMS business processing solutions is solved, enabling differentiated adjustments and efficient SMS sending.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- CHINA MOBILE (SUZHOU) SOFTWARE TECH CO LTD
- Filing Date
- 2025-01-06
- Publication Date
- 2026-05-19
AI Technical Summary
Existing short message service processing solutions are inflexible and have limited processing scope, failing to effectively address the diverse needs of different business groups, leading to traffic surges and delivery failures.
By introducing accounts as the minimum submission queue in the channel, and making differentiated adjustments based on channels and accounts, flexible allocation and concurrent submission of business parameters are achieved. A three-level splitting mechanism is adopted to improve SMS sending efficiency and reduce traffic impact.
It improves the flexibility of business processing, reduces external impact on the business gateway, ensures the success rate of sending messages, and significantly improves the efficiency of sending batch SMS messages.
Smart Images

Figure CN119967367B_ABST
Abstract
Description
Technical Field
[0001] This application relates to, but is not limited to, the field of communications, and particularly to a service processing method, a service processing apparatus, an electronic device, a computer-readable storage medium, and a computer program product. Background Technology
[0002] Short Message Service (SMS) is a convenient and low-cost information notification solution with widespread applications in user services. For example, website business platforms send platform login passwords to users through SMS gateways, bank business platforms send account balance change notification SMS messages to users through SMS gateways, airline business platforms send ticket booking information to users through SMS gateways, and banks can use SMS gateways to send a large number of promotional SMS messages, providing users with convenient and timely services.
[0003] However, the processing solutions for SMS services in related technologies (such as speed adjustment or parameter configuration) can only be applied at the channel level, which is inflexible and has a limited processing scope. Summary of the Invention
[0004] This application provides a business processing method, a business processing apparatus, an electronic device, a computer-readable storage medium, and a computer program product, which solves the problems of poor flexibility and limited processing scope in related technologies.
[0005] The technical solution of this application is implemented as follows:
[0006] Firstly, embodiments of this application provide a method for processing a service, the method comprising:
[0007] Receive a first message; wherein the first message includes service parameters for the sending service; the service parameters include a first identifier of the sending service, the sending object of the sending service, and the sending content of the sending service;
[0008] Assign a first account to occupy the first channel for the sending service;
[0009] Push the business parameters into the tail of the business queue corresponding to the first identifier;
[0010] Based on the service queue and the first account, a second message is concurrently submitted to the first device; wherein the second message includes the sending object and the sending content.
[0011] Secondly, embodiments of this application provide a service processing apparatus, the processing apparatus comprising:
[0012] A receiving module is configured to receive a first message; wherein the first message includes service parameters of a sending service; the service parameters include a first identifier of the sending service, a sending object of the sending service, and a sending content of the sending service;
[0013] The processing module is used to allocate a first account that occupies the first channel for the sending service;
[0014] The processing module is also used to push the business parameters into the tail of the business queue corresponding to the first identifier;
[0015] The sending module is used to concurrently submit a second message to the first device based on the service queue and the first account; wherein the second message includes the sending object and the sending content.
[0016] Thirdly, embodiments of this application provide an electronic device, the electronic device comprising:
[0017] Memory, used to store executable instructions;
[0018] A processor, used to execute executable instructions stored in the memory, implements the above-described business processing method.
[0019] Fourthly, embodiments of this application provide a computer-readable storage medium storing one or more programs, which can be executed by one or more processors to implement the business processing method described above.
[0020] Fifthly, embodiments of this application provide a computer program product, including a computer program, which, when executed by a processor, implements the steps of the above-mentioned business processing method.
[0021] The processing solution provided in this application uses accounts within a channel as the minimum submission queue, improving the flexibility of the processing solution and allowing for differentiated adjustments to the channel for different business groups. Simultaneously, based on accounts within the channel and a separate queue for each business to be sent, relevant business information is submitted concurrently, achieving traffic smoothing for high-frequency short message submission requests, reducing external impact on the business gateway, and preventing traffic interception leading to sending failures. In long message scenarios, through a three-level splitting of channel, account, and batch, the length of a single submission message is reduced while increasing the number of submissions at the same time, significantly improving the efficiency of batch SMS sending. Attached Figure Description
[0022] Figure 1 This application provides a schematic diagram of the structure of a business processing system.
[0023] Figure 2 A flowchart illustrating the service processing method provided in the embodiments of this application;
[0024] Figure 3 A schematic block diagram of a traffic-based dynamic speed adjustment system for SMS services provided in this application embodiment;
[0025] Figure 4 A schematic block diagram of a service processing apparatus provided in an embodiment of this application;
[0026] Figure 5 This is a schematic structural diagram of an electronic device provided in an embodiment of this application. Detailed Implementation
[0027] To enable those skilled in the art to better understand the present application, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present application, and not all embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of the present application.
[0028] The terms "first," "second," etc., in the specification, claims, and accompanying drawings of this application are used to distinguish different objects, not to describe a specific order. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or apparatus that includes a series of steps or units is not limited to the listed steps or units, but may optionally include steps or units not listed, or may optionally include other steps or units inherent to these processes, methods, products, or apparatuses.
[0029] 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.
[0030] Figure 1This application provides a schematic diagram of the structure of a service processing system, which includes: a system configuration and maintenance module, a service processing module, an account traffic monitoring module, and a service gateway module. The system configuration and maintenance module's main functions include system (level) parameter configuration, service type configuration, channel resource management, channel pre-set account management, channel service type configuration, service-bound account allocation, and account-bound service status management. The service processing module provides data access capabilities. The account traffic monitoring module detects the traffic of the services bound to an account. The service gateway module acts as a bridge between the service and the gateway, sending relevant information to the target gateway.
[0031] Figure 2 A flowchart illustrating a business processing method provided in an embodiment of this application is shown below. Figure 2 As shown, this method is applied to Figure 1 The system for processing the business shown includes the following method:
[0032] Step 201: Receive the first message.
[0033] The first message includes the service parameters of the sending service; the service parameters include the first identifier of the sending service, the sending target of the sending service, and the sending content of the sending service.
[0034] In this embodiment of the application, the service processing module receives a first message including a first message sent by the service platform; the first message may be a sending instruction or a sending request, and the first message may be understood as a message used to instruct / configure the sending service, including the service parameters of the sending service.
[0035] Here, the service parameters of the sending service include, but are not limited to, the identifier of the sending service, the type of the sending service, the sending object of the sending service, the identifier of the sending object, the sending content, and the sending time of the sending content.
[0036] Here, the identifier of the sending object includes, but is not limited to, the MobileStation international Integrated Services Digital Network number (MSISDN), the International Mobile Subscriber Identity (IMSI), the International Mobile Equipment Identity (IMEI), the service identifier (such as the domain name of the terminal), and the service number of a user's application.
[0037] Step 202: Assign the first account that occupies the first channel for the sending service.
[0038] In this embodiment of the application, the service processing module allocates the channel for transmitting service messages and the account of the channel.
[0039] Here, both channels and accounts are pre-defined. A channel includes multiple accounts, and each channel has a set traffic limit. The sum of the traffic corresponding to each account within a channel constitutes the channel's actual traffic. This actual traffic cannot exceed the channel's set traffic limit.
[0040] It should be noted that allocating multiple accounts within a channel can distribute the batch submissions of a business in a distributed manner, reducing the probability of uneven account utilization caused by large-scale submissions.
[0041] It should be noted that the preset channels are set in order, and channels can be assigned to services in sequence according to the channel order. Of course, channels can also be assigned randomly.
[0042] It should be noted that different accounts in the channel have the same traffic. Here, the allocation of accounts in the channel can be random, or priority can be given to the already allocated accounts with idle traffic, and then the unallocated accounts can be allocated.
[0043] In some embodiments, the service processing module allocates a first account occupying the first channel for sending services based on traffic analysis and service parameters of the preset accounts in the preset channel; wherein the preset channel includes the first channel and the preset account includes the first account.
[0044] It should be noted that different service types have different account rate limits; different service types require different numbers of accounts; and different service types have different landline rates. Here, the landline rate represents the rate exclusively used by the account for the service it is bound to. Therefore, the service processing module, based on traffic analysis and service parameters of the pre-set accounts within the pre-set channel, allocates the first account occupying the first channel for the sending service. This can include: the service processing module determining the number of accounts, landline rate, and account rate limit required for the sending service based on the service type corresponding to the sending service; and then, by analyzing the traffic of the pre-set accounts within the pre-set channel, determining the first account that matches the number of accounts, landline rate, and account rate limit required for the sending service.
[0045] It should be noted that different account quantity and speed parameters can be configured for different businesses, which can achieve differentiated experiences for different business types, broaden the possibilities for business classification and categorization, and significantly help promote the product's business.
[0046] Step 203: Push the business parameters into the tail of the business queue corresponding to the first identifier.
[0047] In some embodiments, the service processing module pushes the submission record generated based on service-related parameters into the tail of the unique service queue corresponding to the first identifier; here, a single service corresponds to a separate queue to be sent.
[0048] For example, the service identifier, the sending object, and the sending content are extracted from the service parameters to generate a submission record; further, the service processing module sends the sending queue of the submission record to the service gateway module.
[0049] Step 204: Based on the business queue and the first account, submit the second message concurrently to the first device.
[0050] The second message includes the recipient and the content to be sent.
[0051] In this embodiment of the application, the service gateway module receives the sending queue of the pushed submission record, and concurrently submits the second message to the first device based on the first account and the sending queue.
[0052] Here, the number N of first accounts matches the service type of the sending service; the traffic limit corresponding to the first account matches the service type of the sending service. Therefore, based on the first accounts and the sending queue, concurrently submitting the second message to the first device can be achieved through the following steps: consuming the service queue, and based on the traffic limit corresponding to each first account and N first accounts, concurrently submitting the second message to the first device.
[0053] This application provides a service processing method, which includes: receiving a first message; wherein the first message includes service parameters for a sending service; the service parameters include a first identifier for the sending service, a sending object for the sending service, and sending content for the sending service; allocating a first account occupying a first channel for the sending service; pushing the service parameters into the tail of the service queue corresponding to the first identifier; and concurrently submitting a second message to a first device based on the service queue and the first account; wherein the second message includes a sending object and sending content. In other words, the service processing scheme provided by this application uses the account in the channel as the minimum submission queue, improving the flexibility of the service processing scheme and providing differentiated adjustments for the channel to different service groups; simultaneously, based on the account in the channel and a separate waiting queue corresponding to each service, concurrently submitting relevant service information achieves traffic smoothing for high-frequency short message submission requests, reducing external impact on the service gateway, and preventing traffic interception leading to sending failure. In long message scenarios, through a three-level splitting of channel, account, and batch, the length of a single submission message is reduced while increasing the number of submissions at the same time, significantly improving the efficiency of batch SMS sending.
[0054] In some embodiments, the method provided in this application includes the following:
[0055] Step A1: Calculate the average traffic of the sending service bound to the first account within the account traffic period to obtain the load margin of the first account.
[0056] In some embodiments, the submission traffic of the previous account traffic period corresponding to the submission time of the business parameters is obtained; the business traffic corresponding to the first account is obtained from the submission traffic; the average traffic corresponding to the first account is determined based on the business traffic of the first account and the account traffic period; and the load margin of the first account is determined based on the average traffic and the traffic limit corresponding to the first account.
[0057] It's important to note that the account's rate-limited traffic is divided into two parts: fixed rate and shareable rate. The fixed rate represents the traffic exclusively allocated to the account's bound service, while the shareable rate represents the maximum amount that can be provided to other services when the account's real-time traffic limit has not been reached. Fixed rate + Shareable rate = Account rate. Average traffic represents the average traffic of the initially bound service within the service's traffic statistics period.
[0058] Step A2: Based on the load margin, determine whether the sending service has reached the traffic limit corresponding to the first account.
[0059] In some embodiments, if the load margin is greater than a first preset value, and it is determined that the transmission service has not reached the traffic limit corresponding to the first account, then the idle traffic corresponding to the first account is obtained; and the idle traffic is shared with other accounts. That is, this application supports cross-dimensional traffic sharing, which greatly improves the utilization rate of channel resources.
[0060] In some embodiments, if the load margin is less than or equal to a first preset value, it is determined that the transmission service has reached the traffic limit corresponding to the first account.
[0061] In some embodiments, the method provided in this application includes the following:
[0062] Step B1: If the first account is unbound from the sending service, or a second account different from the first account is added to the sending service, or the sending service is taken offline, or the first channel is closed, the binding relationship between the channel, the sending service and the account is regenerated based on the number of accounts bound to the sending service.
[0063] The following will describe an exemplary application of the embodiments of this application in a real-world application scenario.
[0064] Figure 3 This is a schematic block diagram of a data-based dynamic speed adjustment system for SMS services provided in an embodiment of this application, such as... Figure 3As shown, the traffic-based SMS service dynamic speed adjustment system includes a system configuration and maintenance module, an SMS service processing module, an account traffic monitoring module, and an SMS service gateway module; among them, the account traffic monitoring module is used for updating the traffic of account-bound services.
[0065] The main functions of the system configuration and maintenance module include system (level) parameter configuration, service type configuration, channel resource management, channel pre-set account management, channel service type configuration, service binding account allocation, and account binding service status management.
[0066] System (level) parameter configuration management submodule: used to configure key system parameters, such as account traffic cycle, channel check cycle, account single concurrent processing time and account single concurrent sleep wait time.
[0067] The business type configuration submodule is used to define the system's business types and the rate limit for a single account of the current type. Table 1 is a business type configuration table provided in this embodiment of the application. Key fields of the business type configuration (business_type) include, but are not limited to: business type, business type name, and account rate limit (messages / second). As shown in Table 1, business types can be divided into fewer and many, which are respectively CAPTCHA type and mass notification type. The account rate limit for CAPTCHA type is 10, and the account rate limit for mass notification type is 50.
[0068] Business type Business type name Account speed limit fewer Verification code 10 many Mass notification 50
[0069] Table 1
[0070] The channel resource management submodule is used to configure the system's preset channels and set the channel's traffic limit. Table 2 is a channel resource management table provided in an embodiment of this application. The key fields of channel resource (channel_resource) include, but are not limited to: channel ID, channel name, channel rate, and sorting. As shown in Table 2, the channel name for channel ID ch1 is channel 1 (corresponding sequence number 1), and the channel rate of channel 1 is 1000; the channel name for channel ID ch2 is channel 2 (corresponding sequence number 2), and the channel rate of channel 2 is 1000.
[0071] Channel ID Channel Name Channel rate Serial Number ch1 Channel 1 1000 1 ch2 Channel 2 1000 2
[0072] Table 2
[0073] The channel pre-configured account management submodule is used to configure the pre-configured accounts for the channel and maintain the account attributes. The more concurrent accounts submitting within a channel, the lower the throughput of a single account. Table 3 is a channel pre-configured account management table provided in an embodiment of this application. The key fields of the channel pre-configured account (channel_username_resource) include, but are not limited to: account ID, channel ID, and sorting. As shown in Table 3, the pre-configured accounts corresponding to channel ID ch1 are: u1 (corresponding to sequence number 1), u2 (corresponding to sequence number 2), u3 (corresponding to sequence number 3), u4 (corresponding to sequence number 4), u5 (corresponding to sequence number 5), u6 (corresponding to sequence number 6), u7 (corresponding to sequence number 7), u8 (corresponding to sequence number 8), u9 (corresponding to sequence number 9), and u10 (corresponding to sequence number 10).
[0074] Channel ID account Serial Number ch1 u1 1 ch1 u2 2 ch1 u3 3 ch1 u4 4 ch1 u5 5 ch1 u6 6 ch1 u7 7 ch1 u8 8 ch1 u9 9 ch1 u10 10
[0075] Table 3
[0076] The channel business type configuration submodule is used to allocate the number of accounts for each channel according to its business type, and to set the rate limit and corresponding traffic percentage for each account. Specifically, for CAPTCHA-related services, more accounts are configured to increase concurrency and reduce the number of submissions per account; for mass messaging services, a reasonable number of accounts are configured to increase the throughput of a single account while utilizing the concurrency of the account channel. Table 4 is a channel business type configuration table provided in an embodiment of this application. Key fields of the channel business type configuration (channel_business_type_config) include, but are not limited to: channel ID, channel name, business type, number of accounts, account rate limit, traffic percentage, fixed rate, and sequence number. As shown in Table 4, in channel 1, the business type corresponding to few is allocated with 20 accounts, an account rate limit of 20, a traffic percentage of 50%, and a fixed rate of 10 (corresponding sequence number 1); in channel 1, the business type corresponding to many is allocated with 10 accounts, an account rate limit of 60, a traffic percentage of 50%, and a fixed rate of 50 (corresponding sequence number 2).
[0077] Channel ID Channel Name Business type Number of accounts Account speed limit Traffic share Curing rate Serial Number ch1 Channel 1 fewer 20 20 50% 10 1 ch1 Channel 1 many 10 60 50% 50 2
[0078] Table 4
[0079] The Business Binding Account Allocation submodule is used to allocate the default number of accounts for each business type. The sum of the number of accounts configured for the same business type is the total number of accounts configured for that business type in the channel. The corresponding business concurrency and traffic limits can be adjusted by changing the number of accounts. Unbinding all accounts from a business means taking that business offline. Table 5 is a business binding account table provided in an embodiment of this application. The key fields of the business binding account (business_username_config) include, but are not limited to: business ID, business name, business type, number of accounts, and serial number. As shown in Table 5, the business name for business ID biz1 is business 1, the business type of business 1 is few, and it occupies 20 accounts (corresponding to the serial number 1); the business name for business ID biz2 is business 2, the business type of business 2 is few, and it occupies 9 accounts (corresponding to the serial number 2); the business name for business ID biz3 is business 3, the business type of business 3 is few, and it occupies 9 accounts (corresponding to the serial number 3); the business name for business ID biz4 is business 4, the business type of business 4 is many, and it occupies 5 accounts (corresponding to the serial number 4); the business name for business ID biz5 is business 5, the business type of business 5 is many, and it occupies 2 accounts (corresponding to the serial number 5).
[0080] Business ID Business Name Business type Number of accounts Serial Number biz1 Business 1 fewer 20 1 biz2 Business 2 fewer 9 2 biz3 Business 3 fewer 9 3 biz4 Business 4 many 5 4 biz5 Business 5 many 2 5
[0081] Table 5
[0082] The account binding business status management submodule is used for binding relationships between channels, accounts, and services, as well as updating and maintaining rate limiting and traffic metrics. The initial account rate limit is the account rate limit defined by the service type. The account's rate-limited traffic is further divided into fixed rate and shareable rate. The fixed rate represents the exclusive access of the account-bound service, while the shareable rate represents the maximum value that can be provided to other services when the current account's real-time traffic has not reached its limit. Fixed rate + shareable rate = account rate. Average traffic represents the average traffic of the initially bound service within the service traffic statistics period. Load margin is 0 by default and is filled and updated by the account margin monitoring module. Table 6 is a business account status table provided in this application embodiment. Key fields of the business account status (business_username_status) include, but are not limited to: channel ID, account, service ID, service type, account rate limit (messages / second), fixed rate (messages / second), shareable rate (messages / second), average traffic (messages / second), and load margin (messages / second). As shown in Table 6, in channel ch1, accounts u1 to u10 are bound to business ID biz1 and business type fewer. The rate limit for accounts u1 to u10 is 20, the fixed-line rate is 10, and the shareable rate is 10. Accounts u1, u5, and u9 have an average traffic of 5 and a load margin of 10. Accounts u2, u6, and u10 have an average traffic of 25 and a load margin of -5. Accounts u3 and u7 have an average traffic of 15 and a load margin of 5. Accounts u4 and u8 have an average traffic of 10 and a load margin of 10. In channel ch1, accounts u11 to u15 are bound to business ID biz2 and business type fewer. The rate limit for accounts u11 to u15 is 20, the fixed-line rate is 15, and the shareable rate is 5. Accounts u11 and u14 have an average traffic of 15 and a load margin of 5. Accounts u12 and u15 have an average traffic of 10 and a load margin of -5. The load margin is 5. The average traffic for account u13 is 25, and the load margin is -5. Accounts u16 to u20 in the channel corresponding to ch1 can be bound to the service type "fewer". The rate limit for accounts u16 to u20 is 20, the fixed-line rate is 0, and the shareable rate is 20. The average traffic is 0, and the load margin is 20. Accounts u21 to u25 in the channel corresponding to ch1 are bound to the service ID "biz3" and the service type "many". The rate limit for accounts u21 to u25 is 60, the fixed-line rate is 50, and the shareable rate is 10. The average traffic for accounts u1, u5, and u9 is 5, and the load margin is 10. The average traffic for account u21 is 10, and the load margin is 50. The average traffic for accounts u22 and u25 is 100, and the load margin is -40. The average traffic for account u23 is 75, and the load margin is -15. The average traffic for account u24 is 60, and the load margin is 0.Account u26 in channel ch1 is bound to business ID biz4 and business type many. The account with u26 has a speed limit of 60, a fixed-line speed of 30, a shareable speed of 20, an average traffic of 75, and a load margin of -15. Account u27 in channel ch1 is bound to business ID biz4 and business type many. The account with u27 has a speed limit of 60, a fixed-line speed of 30, a shareable speed of 30, an average traffic of 50, and a load margin of 10. Account u28 in channel ch1 is bound to business ID biz4 and business type many. Account 28 has a speed limit of 60, a fixed-line rate of 10, a shareable rate of 50, an average traffic of 100, and a load margin of -40. Account u29 in channel ch1 is bound to business ID biz5 and business type many. Account u29 has a speed limit of 60, a fixed-line rate of 10, a shareable rate of 50, an average traffic of 55, and a load margin of 5. Account u30 in channel ch1 can be bound to business type many. Account u30 has a speed limit of 60, a fixed-line rate of 0, a shareable rate of 60, an average traffic of 0, and a load margin of 60.
[0083]
[0084]
[0085] Table 6
[0086] The SMS service processing module includes an SMS sending submodule, which provides data access capabilities to receive SMS content sent by the service platform, extract service information, allocate traffic distribution channels and accounts based on traffic analysis and service parameter configuration, submit SMS messages, and generate submission records. Here, the key fields of the submission record (batch_submit_record) include, but are not limited to: service ID, list of mobile phone numbers, number of numbers, SMS content, number of SMS messages occupied, total number of SMS messages, submission date, submission time, sending date, sending time, and sending batch number.
[0087] It should be noted that the SMS service processing module receives the SMS content input from an external source, then submits the SMS to the SMS service gateway module, subsequently updates the traffic and generates a submission record. This submission record is then added to the corresponding sending queue.
[0088] Step 1: Extract the business ID, number list, and SMS content from the input message to generate the submission record corresponding to the current message. The sending date, sending time, and sending batch number are empty by default and are updated by the SMS service gateway when sending SMS messages.
[0089] Step 2: Query the main queue information to be sent for the current business ID. If it does not exist, create a new queue with main_queue_businessID as the key and bind it to the current business ID.
[0090] Step 3: Push the submission record into the queue from the tail of the queue.
[0091] The main function of the account traffic monitoring module is to calculate the average submission traffic of the corresponding business bound to the account within a traffic period, thereby determining the current account's load capacity. A load capacity of less than zero indicates that the currently bound business has reached the account's traffic limit; a load capacity of more than zero indicates that the current account's submission traffic is not saturated and can be shared with other accounts for submission.
[0092] It should be noted that the account traffic monitoring module includes an account binding service traffic update submodule and a channel status monitoring submodule. The account binding service traffic update submodule is used to calculate the average submission traffic of the account corresponding to the bound service within the account traffic period and update the service account status. The execution flow of the account binding service traffic update submodule includes:
[0093] Step 1: Retrieve submission records to extract the submission traffic from one account traffic cycle back from the current time, and sum the number of SMS messages grouped by channel ID, account, and business ID to obtain the business traffic bound to the current account.
[0094] Step 2: Divide the business traffic bound to the account by the account traffic cycle to obtain the average traffic of the business bound to the current account.
[0095] It should be noted that Step 1 and Step 2 perform account business traffic statistics.
[0096] Step 3: Based on the account status, update the average traffic and load capacity corresponding to the account.
[0097] It should be noted that if the difference between the account speed limit and the average traffic is positive, it means that the load is low and the load margin is the smaller of the shareable traffic and the difference; if the difference is negative, it means that the load is over the limit and the load margin is equal to the difference.
[0098] Step 4: Retrieve the business account status to obtain the mapping relationship between the account and the business consumption queue: usernameConsumeMap. The key is a composite object of channel ID and account, and the value is the business queue details that the account needs to submit, denoted as bizConsumeQueue. The queue element data structure is business ID, business sequence number, business type, and submission quantity (items / second). The list length is denoted as x, and the k-th element is denoted as bizConsumeQueue. k When the load margin is positive, the submission volume is the average submission traffic; in addition, the submission volume is the account rate limit value.
[0099] Step 5: Retrieve business account status information, associate channel resources, channel account resources, and business-bound account information to obtain an account business load list. The data structure of the list elements is channel ID, channel sequence number, account, account sequence number, business ID, business sequence number, business type, and load capacity (items / second).
[0100] Step 6: Extract the negative load margin portions (i.e., negative load values) from the account business load list according to business type to obtain the overload list, denoted as overloadList. Sort the list according to the following rules: business number ascending, channel number ascending, load margin descending, and account number ascending. The length of the list is denoted as m, and the i-th element is denoted as overloadList. i .
[0101] Step 7: Extract the positive load margins (i.e., positive load values) from the account service load list for the same business type to obtain a shared list, denoted as `sharedList`. Sort the list according to the following rules: ascending order of business number, ascending order of channel number, ascending order of load margin, and ascending order of account number. The list length is denoted as `n`, and the `j`th element is denoted as `sharedList`. j .
[0102] Step 8: Read the overloadList from 0 to m. i The channel ID is denoted as CH. i The channel ID is denoted as CH. i Account name is U i The business ID is recorded as BIZ. i The load margin is denoted as load. i The business sequence number is denoted as sort. i The business type is denoted as bizType. i .
[0103] Step 9: Read the sharedList from 0 to n, and first find the overloadList from the sharedList. i The first value of the minimum positive surplus for the same channel and the same service is denoted as sharedList. j sharedList j The channel ID is denoted as CH. j The channel ID is denoted as CH. j Account name is U j The business ID is recorded as BIZ. j The load margin is denoted as load. j Business sequence number sort j Business Type (bizType)j .
[0104] Step 10: If sharedList j If a consumption record exists, it is generated. The data structure is: business ID, business sequence number, business type, and submission volume (records / second). The business ID is BIZ. i The business sequence number is sort. i The business type is bizType i The number of submissions is load. i load j The smaller of the two. (load) i Updated to 0 and load i -load j The larger one, load j Updated to 0 and load j -load i The larger one. Retrieve U from usernameConsumeMap. i The pending business queue `bizConsumeList` is loaded, and the generated consumption records are added to the tail of `bizConsumeQueue`. i A value of 0 represents a sharedList. j A single account can share the overload list i Overloaded traffic, if load i A value greater than zero indicates that more accounts are needed in the sharedList to share the load. If the sharedList... j+1 If the sharedList does not exist or is not the same channel or the same business, the current sharedList processing ends.
[0105] Step 11: Repeat Steps 8-10 using the following six strategies: same channel, same service; different channels, same service; same channel, different service; different channels, different service; same channel, unassigned service; different channels, unassigned service. If the overloadList contains load... i A value of 0 indicates that the overload traffic has been fully distributed, or that the load in the sharedList is zero. j A value of 0 indicates that there is no remaining shared bandwidth available for distribution.
[0106] Step 12: Repeat Steps 8 to 10 for the verification code type and the mass notification type according to the six strategies. If there is no remaining traffic to be allocated or no remaining traffic to be shared, the current account traffic cycle processing flow ends.
[0107] Step 13: Repeat Steps 8 to 10 for the verification code type and the mass notification type according to the six strategies. If one side has remaining traffic to be allocated and the other side has remaining traffic to be shared, it means that the traffic can be allocated across business types.
[0108] Step 14: Sort the sharedList by channel number in ascending order, load margin in ascending order, business number in ascending order (unassigned business is placed at the end), and account number in ascending order. Sort the overloadList by channel number in ascending order, load margin in ascending order, business number in ascending order (unassigned business is placed at the end), and account number in ascending order.
[0109] Step 15: Repeat Steps 8-10 according to the four strategies: same channel, bound business; different channel, bound business; same channel, no business bound; different channel, no business bound. If the overloadList contains load... i A value of 0 indicates that the overload traffic has been fully distributed, or that the load in the sharedList is zero. j A value of 0 indicates that there is no remaining shared bandwidth available for distribution.
[0110] Step 16: This completes the mapping relationship between accounts and business consumption queues within the account traffic cycle (usernameConsumeMap), enabling the redistribution of business between overloaded and idle traffic accounts and improving the efficiency of account traffic utilization.
[0111] The channel status monitoring submodule polls at a channel status check cycle to check the number of accounts bound to a business within a bound channel. If a business is bound to multiple channels, and the channel with the most bound accounts has more than one more bound account than the channel with the fewest bound accounts, it indicates that the business has unbound or added accounts. To maintain a uniform distribution of business accounts and prevent data skew, the channel, business, and account binding relationships need to be regenerated based on the number of accounts bound to the business. Adding or deleting channels, taking a business offline, or unbinding accounts from a business all require rebinding.
[0112] Step 1: Query the account binding status by business type. The cumulative number of accounts by channel and business group can be used to obtain the list of accounts bound to the current business type channel, channelBizUsernames. The data structure is channel ID, business ID, and number of accounts.
[0113] Step 2: If the maximum number of accounts for a business channel minus the minimum number of accounts for a business channel is greater than one, then an account binding business status needs to be generated.
[0114] Step 3: Query the business-bound account allocation (business_username_config), channel business type configuration (channel_business_type_config), channel resources (channel_resource), and channel account resources (channel_resource_username); obtain the channel list as channelList with length m, and denote the i-th element as channelList. i The list of accounts for the current business type within the channel is named businessTypeUsernameList, with a length of n, sorted in ascending order by account number. The j-th element is denoted as businessTypeUsernameList. j The number of accounts of the current business type in the channel is bizUsernameCntList, the length of the list is x, and the k-th element is denoted as bizUsernameCntList. k The list is sorted in descending order by the number of accounts.
[0115] Step 4: Redistribute the number of business accounts evenly across channels. Odd-numbered business accounts are allocated from front to back in the channelList, while even-numbered business accounts are allocated from back to front, resulting in a more even distribution of account numbers across channels. Specifically, k reads bizUsernameCntList from 0 to x, and the k-th element is denoted as bizUsernameCntList. k Number of accounts usernameCnt k t ranges from 0 to usernameCnt k The loop iterates through the channels. For odd-numbered k, we set idx = t % m; for even-numbered k, we set idx = (t-1 - t % m). Using idx as the index, we read the channel list to obtain the channel information `channelList`. idx Based on the channel information, find the first unbound account U in the account list businessTypeUsernameList for the current business type of the channel. Bind this account to the channel and business type to generate the business account status (business_username_status) data structure, which is: channel id, account, business id, business type, account rate limit (messages / second), fixed rate (messages / second), shareable rate (messages / second), average traffic (messages / second), and load margin (messages / second).
[0116] Step 5: Modifying the channel service type configuration, the service binding account configuration, modifying the account service binding relationship in the service account status, or modifying the channel resource quantity will trigger step 4 to reset the binding.
[0117] Step 6: Persistently save the list of business account statuses; the process is now complete.
[0118] The SMS service gateway module acts as a bridge between the SMS service and the SMS gateway, handling the submission queue for consumed SMS messages and submitting them to the SMS gateway according to account traffic rate limits. This reduces the direct traffic impact of SMS services on the SMS gateway. By triggering account-bound service traffic updates, it dynamically adjusts account traffic rate limits, enabling four-level traffic sharing across service types, services, channels, and accounts.
[0119] Step 1: Remotely trigger the update of account binding business traffic.
[0120] Step 2: Mapping relationship between account and business consumption queue: usernameConsumeMap, where the key is a composite object of channel ID and account, and the value is the business queue details that the account needs to submit, denoted as bizConsumeQueue.
[0121] Step 3: Using the size of the keySet in usernameConsumeMap as the concurrency level, continuously consume the business queue according to the sleep waiting time for each account, with the maximum time window for processing a single account's concurrency.
[0122] Step 4: The business queue corresponding to a single concurrent key value is bizConsumeQueue. The data structure of the queue element is business id, business sequence number, business type, and submission volume (items / second). The list length is denoted as m, and the i-th element is denoted as bizConsumeQueue. i .
[0123] Step 5: Read the bizConsumeQueue from 0 to m, where the i-th element corresponds to the business ID bizId. i The business type is bizType i The total number of submissions (submissions / second) multiplied by the single concurrent processing time is the submitLimit. i .
[0124] Step 6: Based on bizId i Get the main queue main_queue_bizId i subqueue_bizId iIf the subqueue does not exist, it is created. An infinite loop alternately reads the first submitted record (submitRecord) from the head of each of the two queues. The data structure is: Business ID, list of phone numbers, number of numbers, SMS content, number of SMS messages occupied by the content, total number of SMS messages (smsTotal), submission date, submission time, sending date, sending time, and sending batch number. If an element is empty, the current loop is skipped and the next element is read.
[0125] Step 7: When bizType i For group notifications, if submitLimit i If the value is greater than smsTotal, the current submitRecord is submitted to the gateway, updating the sending date, sending time, and sending batch number in the submission record. The process continues, alternating between the heads of the two queues, reading n elements each time, until both queues are empty or the accumulated smsTotal is greater than or equal to submitLimit. i Break out of the infinite loop. For example, in the nth submitRecord, the submitLimit method... i If truncation occurs, copy submitLimit. n Update its data with the truncated remainder, resulting in a new commit record named submitLimit. new , submitLimit new Push the sub-queue from the rear of the queue.
[0126] Step 8: When bizType i For verification code service type, j ranges from 0 to submitLimit. i Loop through the main queue main_queue_bizId i The first element at the head of the queue is `submitRecord`. If `submitRecord` is empty, the subqueue `sub_queue_bizId` is read. i .
[0127] Step 9: If the total number of SMS messages in submitRecord is smsTotal, then if submitLimit... i If the value is greater than smsTotal, then submit each record in the current submitRecord to the gateway and update j to j + smsTotal. Continue reading n elements alternately from the heads of the two queues until both queues are empty or the accumulated smsTotal is greater than or equal to submitLimit. i Stop the loop. For example, in the nth submitRecord, the submitLimit... i If truncation occurs, copy submitLimit. nUpdate its data with the truncated remainder, resulting in a new commit record named submitLimit. new , submitLimit new Push the sub-queue from the rear of the queue.
[0128] Step 10: When the processing time limit is reached or both the main queue and the sub-queue are empty, enter a single-concurrency sleep mode and wait.
[0129] Embodiments of this application provide a service processing apparatus, which can be used to implement... Figure 2 A corresponding embodiment provides a service processing method, referring to... Figure 4 As shown, the business processing device 400 includes:
[0130] The receiving module 401 is used to receive a first message; wherein the first message includes service parameters of the sending service; the service parameters include a first identifier of the sending service, the sending object of the sending service, and the sending content of the sending service;
[0131] Processing module 402 is used to allocate a first account that occupies the first channel for the sending service;
[0132] The processing module 402 is also used to push the business parameters into the tail of the business queue corresponding to the first identifier;
[0133] The sending module 403 is used to concurrently submit a second message to the first device based on the business queue and the first account; wherein the second message includes the sending object and the sending content.
[0134] In other embodiments of this application, the service parameters include the service type of the service being sent, the number N of the first accounts matching the service type, the traffic limit corresponding to the first account matching the service type, and N being a positive integer; the processing module 402 is used to consume the service queue and, based on the traffic limit corresponding to each first account and the N first accounts, concurrently submit the second message to the first device.
[0135] In other embodiments of this application, the processing module 402 is used to allocate a first account occupying the first channel for sending services based on traffic analysis and service parameters of the preset accounts in the preset channel; wherein, the preset channel includes the first channel, and the preset account includes the first account.
[0136] In other embodiments of this application, the processing module 402 is used to calculate the average traffic of the sending service bound to the first account within the account traffic period, and obtain the load margin of the first account.
[0137] Processing module 402 is used to determine whether the sending service has reached the traffic limit corresponding to the first account based on the load margin.
[0138] In other embodiments of this application, the acquisition module 404 is used to acquire the submission traffic of the previous account traffic period corresponding to the submission time of the business parameters.
[0139] Processing module 402 is used to obtain the business traffic corresponding to the first account from the submitted traffic;
[0140] Processing module 402 is used to determine the average traffic corresponding to the first account based on the business traffic and account traffic cycle of the first account;
[0141] Processing module 402 is used to determine the load margin of the first account based on the average traffic and the traffic limit corresponding to the first account.
[0142] In other embodiments of this application, the processing module 402 is used to determine the overloaded traffic account and the idle traffic account in the first account based on the load margin;
[0143] Processing module 402 is used to redistribute services between overloaded traffic accounts and idle traffic accounts.
[0144] In other embodiments of this application, the acquisition module 404 is used to acquire the idle traffic corresponding to the first account if the load margin is greater than a first preset value.
[0145] Processing module 402 is used to share idle traffic.
[0146] In other embodiments of this application, the processing module 402 is used to regenerate the binding relationship between the channel, the sending service and the account based on the number of accounts bound to the sending service if the first account is unbound from the sending service, or a second account different from the first account is added to the sending service, or the sending service is taken offline, or the first channel is closed.
[0147] The descriptions of the above device embodiments are similar to those of the above method embodiments, and have similar beneficial effects. For technical details not disclosed in the device embodiments of this application, please refer to the descriptions of the method embodiments of this application for understanding.
[0148] It should be noted that, in the embodiments of this application, if the above-mentioned business processing methods are implemented in the form of software functional modules and sold or used as independent products, they can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiments of this application, in essence, or the part that contributes to related technologies, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a terminal device to execute all or part of the methods of the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, mobile hard drives, ROMs, magnetic disks, or optical disks. Thus, the embodiments of this application are not limited to any specific hardware and software combination.
[0149] Figure 5 This is a schematic structural diagram of an electronic device 500 provided in an embodiment of this application. This electronic device can be a service processing unit. Figure 5 The illustrated electronic device 500 includes a processor 510, which can call and run computer programs from a memory 520 to implement the methods in the embodiments of this application.
[0150] Optionally, such as Figure 5 As shown, the electronic device 500 may further include a memory 520. The processor 510 can retrieve and run computer programs from the memory 520 to implement the methods described in this embodiment.
[0151] The memory 520 can be a separate device independent of the processor 510, or it can be integrated into the processor 510.
[0152] Optionally, such as Figure 5 As shown, the electronic device 500 may also include a transceiver 530, which the processor 510 can control to communicate with other devices. Specifically, it can send information or data to other devices or receive information or data sent by other devices.
[0153] The transceiver 530 may include a transmitter and a receiver. The transceiver 530 may further include antennas, and the number of antennas may be one or more.
[0154] Optionally, the electronic device 500 may specifically be a service processing device in the embodiments of this application, and the electronic device 500 may implement the corresponding processes implemented by the service processing device in the various methods of the embodiments of this application. For the sake of brevity, it will not be described in detail here.
[0155] For example, embodiments of this application also provide a computer program product, including a computer program that can be executed by a processor 510 of an electronic device 500 to perform the steps described in any of the foregoing methods.
[0156] It should be understood that the processor in the embodiments of this application may be an integrated circuit chip with signal processing capabilities. In implementation, the steps of the above method embodiments can be completed by integrated logic circuits in the processor's hardware or by instructions in software form. The processor described above can be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly embodied in the execution of a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor. The software modules can be located in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. The storage medium is located in memory, and the processor reads information from the memory and, in conjunction with its hardware, completes the steps of the above method.
[0157] As one embodiment, the processor may include one or more general-purpose central processing units (CPUs). Each of these processors may be a single-core processor or a multi-core processor. Here, "processor" may refer to one or more devices, circuits, and / or processing cores used for processing data (e.g., executing instructions).
[0158] It is understood that the memory in the embodiments of this application can be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory can be ROM, Programmable Read-Only Memory (PROM), Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), or flash memory. The volatile memory can be Random Access Memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDR SDRAM), Enhanced Synchronous DRAM (ESDRAM), Synchlink DRAM (SLDRAM), and Direct Rambus RAM (DR RAM). It should be noted that the memory used in the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0159] This application also provides a computer-readable storage medium for storing computer programs.
[0160] The computer-readable storage medium can be applied to the service processing apparatus in the embodiments of this application, and the computer program causes the computer to execute the corresponding processes implemented by the service processing apparatus in the various methods of the embodiments of this application. For the sake of brevity, it will not be described in detail here.
[0161] The computer-readable storage medium can be applied to the electronic device in the embodiments of this application, and the computer program causes the computer to execute the corresponding processes implemented by the electronic device in the various methods of the embodiments of this application. For the sake of brevity, it will not be described in detail here.
[0162] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented in software, it can be implemented, in whole or in part, as a computer program product.
[0163] A computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the flow or function according to the embodiments of this application is generated. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium may be any available medium that a computer can store or a data storage device such as a server or data center that integrates one or more available media. The available media may be magnetic media (e.g., floppy disks, hard disks, magnetic tapes), optical media (e.g., DVDs), or semiconductor media (e.g., solid-state drives (SSDs)).
[0164] The foregoing has provided a detailed description of the service processing methods, service processing apparatus, electronic devices, computer-readable storage media, and computer program products provided in the embodiments of this application. Specific examples have been used to illustrate the principles and implementation methods of this application. The descriptions of the above embodiments are only for the purpose of helping to understand the methods and core ideas of this application. At the same time, for those skilled in the art, there will be changes in the specific implementation methods and application scope based on the ideas of this application. Therefore, the content of this specification should not be construed as a limitation of this application.
[0165] It should be understood that the phrases "an embodiment," "an embodiment," "an embodiment of this application," "the foregoing embodiment," "some implementations," or "some embodiments" mentioned throughout the specification mean that a specific feature, structure, or characteristic related to the embodiment is included in at least one embodiment of this application. Therefore, the phrases "an embodiment," "an embodiment," "an embodiment of this application," "the foregoing embodiment," "some implementations," or "some embodiments" appearing throughout the specification do not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. It should be understood that in the various embodiments of this application, the sequence numbers of the above-described processes do not imply a sequential order of execution; the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application. The sequence numbers of the above-described embodiments of this application are merely descriptive and do not represent the superiority or inferiority of the embodiments.
[0166] Unless otherwise specified, any step performed by the service processing device / electronic device in the embodiments of this application may be performed by the processor of the service processing device / electronic device. Unless otherwise specified, the embodiments of this application do not limit the order in which the service processing device / electronic device performs the following steps. Furthermore, the methods used to process data in different embodiments may be the same or different methods.
[0167] In the several embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. The device embodiments described above are merely illustrative. For example, the division of units is only a logical functional division, and in actual implementation, there may be other division methods, such as: multiple units or components can be combined, or integrated into another system, or some features can be ignored or not executed. In addition, the coupling, direct coupling, or communication connection between the various components shown or discussed can be through some interfaces, and the indirect coupling or communication connection between devices or units can be electrical, mechanical, or other forms.
[0168] The units described above as separate components may or may not be physically separate. The components shown as units may or may not be physical units. They may be located in one place or distributed across multiple network units. Some or all of the units may be selected to achieve the purpose of this embodiment according to actual needs.
[0169] In addition, each functional unit in the various embodiments of this application can be integrated into one processing unit, or each unit can be a separate unit, or two or more units can be integrated into one unit; the integrated unit can be implemented in hardware or in the form of hardware plus software functional units.
[0170] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined to obtain new method embodiments without conflict. The features disclosed in the several product embodiments provided in this application can be arbitrarily combined to obtain new product embodiments without conflict. The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined to obtain new method embodiments or device embodiments without conflict.
[0171] Those skilled in the art will understand that all or part of the steps of the above method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a computer storage medium. When the program is executed, it performs the steps of the above method embodiments. The aforementioned storage medium includes various media that can store program code, such as mobile storage devices, ROMs, magnetic disks, or optical disks.
[0172] Alternatively, if the integrated units described above are implemented as software functional modules and sold or used as independent products, they can also be stored in a computer storage medium. Based on this understanding, the technical solutions of the embodiments of this application, or the parts that contribute to related technologies, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as mobile storage devices, ROMs, magnetic disks, or optical disks.
[0173] The singular forms “a,” “the,” and “the” used in the embodiments of this application and the appended claims are also intended to include the plural forms, unless the context clearly indicates otherwise.
[0174] It should be noted that in the various embodiments involved in this application, all steps or some steps may be performed, as long as a complete technical solution can be formed.
[0175] The above description is merely an embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A method for processing business transactions, characterized in that, The method includes: Receive a first message; wherein the first message includes service parameters for the sending service; the service parameters include a first identifier of the sending service, the sending object of the sending service, the service type of the sending service, and the sending content of the sending service; Assign a first account to occupy a first channel for the sending service; the first channel is a preset channel; the preset channel includes multiple preset accounts; the preset account includes the first account; the number N of the first accounts matches the service type; the traffic limit corresponding to the first account matches the service type; one sending service corresponds to at least one first channel; N is a positive integer; push the service parameters into the tail of the unique service queue corresponding to the first identifier; one sending service corresponds to one service queue; Obtain the mapping relationship between accounts and business queues; wherein the key corresponding to the mapping relationship is a composite object of channel and account; the value corresponding to the mapping relationship is the details of the business queue that the account needs to submit; the account includes a first account; the channel includes a first channel; The number of concurrent processes is determined by the size of the key set in the mapping relationship. The service queue corresponding to the sending service is consumed at intervals according to the single concurrent sleep waiting time corresponding to the first account. Based on the traffic limit corresponding to each first account and N first accounts, the second message is concurrently submitted to the first device. The maximum time window for a single concurrent process is the single concurrent processing time of the first account. The second message includes the sending object and the sending content.
2. The method according to claim 1, characterized in that, The first account allocated to occupy the first channel for the sending service includes: Based on the traffic analysis of the pre-set accounts in the pre-set channel and the service parameters, a first account is allocated to occupy the first channel for the sending service.
3. The method according to claim 1, characterized in that, After allocating a first account to occupy the first channel for the sending service, the method further includes: The average traffic of the sending services bound to the first account within the statistical account traffic period is used to obtain the load margin of the first account; Based on the available load margin, determine whether the sending service has reached the traffic limit corresponding to the first account.
4. The method according to claim 3, characterized in that, The average traffic of the sending services bound to the first account within the statistical account traffic period is used to obtain the load margin of the first account, including: Obtain the submission traffic of the previous account traffic period corresponding to the submission time of the business parameter; Obtain the business traffic corresponding to the first account from the submitted traffic; Based on the business traffic and account traffic cycle of the first account, determine the average traffic corresponding to the first account; Based on the average traffic and the traffic limit corresponding to the first account, the load margin of the first account is determined.
5. The method according to claim 3, characterized in that, The method further includes: Based on the aforementioned load margin, determine the overloaded traffic accounts and idle traffic accounts in the first account; The overloaded traffic accounts and idle traffic accounts are redistributed for business purposes.
6. The method according to claim 3, characterized in that, The method further includes: If the load margin is greater than the first preset value, obtain the idle traffic corresponding to the first account; Share the idle traffic.
7. The method according to claim 1, characterized in that, The method further includes: If the first account is unbound from the sending service, or a second account different from the first account is added to the sending service, or the sending service is taken offline, or the first channel is closed, the binding relationship between the channel, the sending service and the account is regenerated based on the number of accounts bound to the sending service.
8. A business processing apparatus, characterized in that, The processing device for the aforementioned service includes: A receiving module is configured to receive a first message; wherein the first message includes service parameters of a sending service; the service parameters include a first identifier of the sending service, a sending object of the sending service, a service type of the sending service, and a sending content of the sending service; The processing module is configured to allocate a first account occupying a first channel for the sending service; associate the first channel, the first account, and the first identifier; the first channel is a preset channel; the preset channel includes multiple preset accounts; the preset account includes the first account; the number N of the first accounts matches the service type; one sending service corresponds to at least one first channel; and N is a positive integer. The processing module is also used to push the service parameters into the tail of the unique service queue corresponding to the first identifier; one sending service corresponds to one service queue. The acquisition module is used to acquire the mapping relationship between accounts and business queues; wherein, the key corresponding to the mapping relationship is a composite object of channel and account; the value corresponding to the mapping relationship is the details of the business queue that the account needs to submit; the account includes a first account; the channel includes a first channel; The sending module is used to consume the service queue corresponding to the sending service according to the size of the key set in the mapping relationship as the number of concurrent processes, according to the single concurrent sleep waiting time corresponding to the first account as the interval, and to concurrently submit the second message to the first device based on the traffic limit corresponding to each first account and N first accounts; wherein, the maximum time window for a single concurrent process is the single concurrent processing time of the first account, and the second message includes the sending object and the sending content.
9. An electronic device, characterized in that, The electronic device includes: Memory, used to store executable instructions; A processor, when executing executable instructions stored in the memory, implements the processing method of any one of claims 1 to 7.
10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores one or more programs, which can be executed by one or more processors to implement the processing method of the service according to any one of claims 1 to 7.
11. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the processing method of the service as described in any one of claims 1 to 7.