A batch transfer method, device, equipment, medium and product
By splitting batch transfer requests into multiple levels and prioritizing them, and by optimizing batch transfer processing in conjunction with the receiving bank's throughput capacity, the problem of low efficiency in existing technologies has been solved, thereby improving transaction success rate and customer experience.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- AGRICULTURAL DEVELOPMENT BANK OF CHINA
- Filing Date
- 2026-04-09
- Publication Date
- 2026-07-14
Smart Images

Figure CN122390734A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present invention relate to the field of financial technology, and in particular to a method, apparatus, equipment, medium and product for batch transfer. Background Technology
[0002] In the fintech sector, bulk transfers are a high-frequency scenario in payment systems, typically achieved by uploading a batch file to transfer funds from a single user to multiple users. Bulk transfers involve two processes: first, the transaction is recorded in the bank's core system; second, a transfer message is sent to other banks. Usually, the transaction is recorded in the bank's core system first, and then the transfer message is sent to other banks. While this one-to-many transaction is more convenient and efficient in operation, the large number of accounts that need to be processed, coupled with the potential for hot accounts, leads to lower processing efficiency and negatively impacts customer experience.
[0003] While existing batch transfer technologies have improved the efficiency of batch transfers to some extent, they have not been designed with concurrency in mind. They have overlooked the possibility that the receiving bank's throughput limit may lead to transaction failures, and they have also overlooked the fact that different customers have different urgency requirements for business, which may result in poor customer experience for high-value customers. Summary of the Invention
[0004] This invention provides a batch transfer method, apparatus, device, medium, and product to effectively avoid triggering the performance bottleneck of the receiving bank, thereby preventing a large number of transaction failures and improving the customer experience.
[0005] According to one aspect of the present invention, a method for bulk transfers is provided, comprising: After receiving a batch transfer request, obtain the number of batch transfers corresponding to each user to be transferred in batches, and divide the number of batch transfers corresponding to each user based on the number of transfers threshold to obtain a capacity split batch set. The first processing process partitioning result is determined based on the capacity splitting batch set; Each batch in the capacity splitting batch set is split according to the customer priority corresponding to each user to be transferred in batches, to obtain a priority sub-batch set; The second processing process division result is determined based on the first processing process division result and the priority sub-batch set; The single-package limit of each receiving bank is determined based on the throughput capacity of the receiving bank corresponding to each user to be transferred in batches, and each sub-batch in the priority sub-batch set is divided into single-package units of the single-package limit number. Based on the single packet unit, each processing process in the second processing process division result performs message sending processing for the batch transfer transactions of each receiving bank.
[0006] According to another aspect of the present invention, a bulk transfer device is provided, the device comprising: The acquisition and partitioning module is used to receive batch transfer requests, obtain the number of batch transfers corresponding to each user to be transferred in batches, and partition the number of batch transfers corresponding to each user based on the number of transfers threshold to obtain a capacity-split batch set. The first determining module is used to determine the first processing process partitioning result based on the capacity splitting batch set; The splitting module is used to split each batch in the capacity splitting batch set according to the customer priority corresponding to each user to be transferred in batches, so as to obtain a priority sub-batch set. The second determining module is used to determine the second processing process partitioning result based on the first processing process partitioning result and the priority sub-batch set; The third determining module is used to determine the single package limit of each receiving bank based on the throughput capacity of the receiving bank corresponding to each user to be transferred in batches, and to divide each sub-batch in the priority sub-batch set into single package units of the single package limit number. The sending module is used to send messages to each receiving bank's batch transfer transactions based on the single packet unit, with each processing process in the second processing process division result handling the message sending process.
[0007] According to another aspect of the present invention, an electronic device is provided, the electronic device comprising: At least one processor; and A memory communicatively connected to the at least one processor; wherein, The memory stores a computer program that can be executed by the at least one processor, the computer program being executed by the at least one processor to enable the at least one processor to perform the batch transfer method according to any embodiment of the present invention.
[0008] According to another aspect of the present invention, a computer-readable storage medium is provided, the computer-readable storage medium storing computer instructions for causing a processor to execute and implement the batch transfer method described in any embodiment of the present invention.
[0009] According to another aspect of the present invention, embodiments of the present invention also provide a computer program product, the computer program product including a computer program, which, when executed by a processor, implements the batch transfer method described in any embodiment of the present invention.
[0010] In this embodiment of the invention, after receiving a batch transfer request, the number of batch transfers corresponding to each user to be transferred is obtained, and the number of batch transfers corresponding to each user is divided based on a threshold to obtain a capacity-splitting batch set. A first processing process division result is determined based on the capacity-splitting batch set. Each batch in the capacity-splitting batch set is further divided according to the customer priority corresponding to each user to be transferred, to obtain a priority sub-batch set. A second processing process division result is determined based on the first processing process division result and the priority sub-batch set. The single-package upper limit of each receiving bank is determined based on the throughput capacity of each receiving bank corresponding to each user to be transferred. Each sub-batch in the priority sub-batch set is divided into single-package units with the single-package upper limit. Based on the single-package units, each processing process in the second processing process division result performs message sending processing for the batch transfer transactions of each receiving bank. The technical solution of this invention first divides the total number of batches into different batches, then divides them into batches according to customer priority, and finally determines the upper limit of a single package based on the receiving bank's capacity. This takes into account both the receiving bank's throughput limit and the customer priority division, which can improve the customer experience and effectively avoid triggering the receiving bank's performance bottleneck, thus preventing a large number of transaction failures.
[0011] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of the present invention, nor is it intended to limit the scope of the invention. Other features of the invention will become readily apparent from the following description. Attached Figure Description
[0012] To more clearly illustrate the technical solutions of the embodiments of the present invention, the accompanying drawings used in the embodiments will be briefly introduced below. It should be understood that the following drawings only show some embodiments of the present invention and should not be regarded as a limitation on the scope. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.
[0013] Figure 1 This is a flowchart of a batch transfer method according to an embodiment of the present invention; Figure 2 This is a specific operational reference diagram of splitting according to customer priority tags in an embodiment of the present invention; Figure 3 This is a schematic diagram of the structure of a batch transfer device according to an embodiment of the present invention; Figure 4 This is a schematic diagram of the structure of an electronic device that implements the batch transfer method of this invention. Detailed Implementation
[0014] To enable those skilled in the art to better understand the present invention, the technical solutions of the present invention will be clearly and completely described below with reference to the accompanying drawings of the embodiments of the present invention. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort should fall within the scope of protection of the present invention.
[0015] It should be noted that the terms "first," "second," etc., in the specification, claims, and accompanying drawings of this invention are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of the invention described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms "comprising" and "having," and their derivatives, are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.
[0016] It is understood that before using the technical solutions disclosed in the various embodiments of this disclosure, users should be informed of the types, scope of use, and usage scenarios of the personal information involved in this disclosure in an appropriate manner in accordance with relevant laws and regulations, and user authorization should be obtained.
[0017] Example 1 Figure 1 This is a flowchart of a batch transfer method according to an embodiment of the present invention. This embodiment is applicable to batch transfer scenarios. The method can be executed by the batch transfer device in this embodiment of the present invention, which can be implemented in software and / or hardware, such as... Figure 1 As shown, the method specifically includes the following steps: S101. After receiving a batch transfer request, obtain the number of batch transfers corresponding to each user to be transferred in batches, and divide the number of batch transfers corresponding to each user based on the number of transfers threshold to obtain a capacity split batch set.
[0018] It should be noted that a batch transfer request can be a business request from a customer requiring batch transfers, and multiple customers can submit batch transfer requests simultaneously. The users to be transferred in batches are the customers for whom batch transfers are to be made. The number of batch transfers can be the number of transfers a customer makes in a single transaction, such as 5 transfers or 500 transfers.
[0019] The number of transactions threshold can be set based on actual needs or experience. When the number of transactions in a batch exceeds this threshold, it can be considered a large batch; when the number of transactions in a batch is less than or equal to this threshold, it can be considered a small batch. This embodiment does not limit the number of transactions threshold and can be set and adjusted as needed.
[0020] In this embodiment, the capacity-split batch set can be a set obtained by dividing the batch transfer number of each customer according to a transaction number threshold. Preferably, the capacity-split batch set can include large batches and small batches.
[0021] Specifically, when a user initiates a batch transfer request, the number of batch transfers for each user is obtained. The number of batch transfers for each user is compared with the number of transfers threshold. The number of batch transfers for each user is divided according to the size of the number of transfers, resulting in a capacity-split batch set.
[0022] S102. Determine the first processing process partitioning result based on the capacity-split batch set.
[0023] It should be noted that the result of the first processing process partitioning can be the result of dividing different batches in the capacity splitting batch set into different processing processes.
[0024] For example, large batches in the capacity-split batch set can be processed by a large batch process, and small batches in the capacity-split batch set can be processed by a small batch process. The above two processing processes together constitute the first processing process partitioning result.
[0025] In practice, large batches of transfers with a large number of transactions take longer to process, which can squeeze the processing time of smaller batches with fewer transactions. Processing large and small batches separately can better improve the customer experience.
[0026] S103. For each batch in the capacity splitting batch set, split them according to the customer priority corresponding to each user to be transferred in batches, and obtain a priority sub-batch set.
[0027] In this embodiment, customer priority can be determined based on the customer priority tag corresponding to each user to be transferred in batches. For example, the customer priority tag can be expedited / priority / normal.
[0028] The priority sub-batch set can be a set of priority sub-batch generated by further splitting the large and small batches in the capacity split batch set according to customer priority tags (urgent / priority / normal).
[0029] For example, large and small batches are further split according to customer priority tags (urgent / priority / normal). For instance, large batches are divided into three sub-batches: urgent / priority / normal, and small batches are divided into three sub-batches: urgent / priority / normal. These six sub-batches together form a priority sub-batch set.
[0030] S104. Determine the second processing process partitioning result based on the first processing process partitioning result and the priority sub-batch set.
[0031] It should be noted that the second process partitioning result can be the result of dividing each process in the first process partitioning result into different processes according to different batches in the priority sub-batch set.
[0032] For example, large batch processing processes can be divided into: an expedited queue for large batch processing, a priority queue for large batch processing, and a regular queue for large batch processing; small batch processing processes can be divided into: an expedited queue for small batch processing, a priority queue for small batch processing, and a regular queue for small batch processing. These six division results together constitute the second processing process division result.
[0033] By further splitting large and small batches according to customer priority tags (urgent / priority / normal), priority sub-batches are generated to ensure that high-priority transactions are processed first in the core system.
[0034] S105. Determine the single-package limit for each receiving bank based on the throughput capacity of the receiving bank corresponding to each user to be transferred in batches, and divide each sub-batch in the priority sub-batch set into single-package units with the single-package limit.
[0035] After the core system completes the accounting, the message sending thread needs to package and process the messages into single-packet units according to the receiving bank. Specifically, based on the throughput capacity of each receiving bank, the upper limit of a single packet is calculated, and the priority sub-batch is split into single-packet units that meet the carrying capacity of the receiving bank.
[0036] S106. Based on a single packet unit, each processing process in the second processing process division result performs message sending processing for the batch transfer transactions of each receiving bank.
[0037] Specifically, multiple threads from the results of the second processing process divide the transaction into several threads to process the message sending for each receiving bank, thus completing the batch transfer operation.
[0038] In this embodiment of the invention, after receiving a batch transfer request, the number of batch transfers corresponding to each user to be transferred is obtained, and the number of batch transfers corresponding to each user is divided based on a threshold to obtain a capacity-splitting batch set. A first processing process division result is determined based on the capacity-splitting batch set. Each batch in the capacity-splitting batch set is further divided according to the customer priority corresponding to each user to be transferred, to obtain a priority sub-batch set. A second processing process division result is determined based on the first processing process division result and the priority sub-batch set. The single-package upper limit of each receiving bank is determined based on the throughput capacity of each receiving bank corresponding to each user to be transferred. Each sub-batch in the priority sub-batch set is divided into single-package units with the single-package upper limit. Based on the single-package units, each processing process in the second processing process division result performs message sending processing for the batch transfer transactions of each receiving bank. The technical solution of this invention first divides the total number of batches into different batches, then divides them into batches according to customer priority, and finally determines the upper limit of a single package based on the receiving bank's capacity. This takes into account both the receiving bank's throughput limit and the customer priority division, which can improve the customer experience and effectively avoid triggering the receiving bank's performance bottleneck, thus preventing a large number of transaction failures.
[0039] Optionally, the single-package limit for each receiving bank can be determined based on the throughput capacity of the receiving bank corresponding to each user to be transferred in batches, including: Obtain the preset dynamic adjustment coefficient, error penalty factor, and queue depth decay coefficient, as well as the throughput, real-time error rate, and number of pending transactions for each receiving bank.
[0040] The real-time error rate is the percentage of failed transfers within a preset time period, representing the target number of transactions.
[0041] For example, the preset time period can be a period of time before the current time, and the target number of transactions can be N. This embodiment does not impose specific limitations on this, and users can set and adjust it according to actual needs or experience.
[0042] In this embodiment, the dynamic adjustment coefficient can be adjusted according to the business period, slowing down during peak hours and speeding up during off-peak hours; the error penalty factor is used to represent the penalty intensity of the error rate on throughput and can be set by the user; the queue depth decay coefficient can also be set and adjusted according to the actual situation. The receiving bank's throughput TPS (Transactions Per Second) is a core indicator for measuring the system's throughput capacity, referring to the number of complete business transactions that the system can successfully complete per second; the receiving bank's real-time error rate refers to the failure rate of the most recent N transactions.
[0043] For each receiving bank, the upper limit of a single package is determined based on the dynamic adjustment coefficient, error penalty factor, queue depth decay coefficient, throughput, real-time error rate, and the number of pending transactions.
[0044] Specifically, the receiving bank Single package limit .in It is the receiving bank throughput (TPS); It is a dynamic adjustment coefficient (optionally set to 0.8~1.0, adjusted according to business hours, reducing speed during peak hours and increasing speed during off-peak hours); It is the error penalty factor (optionally set to 0.5, representing the severity of the penalty imposed on throughput by the error rate); It is the queue depth decay coefficient (optionally set to 0.9). It is the receiving bank Real-time error rate (the failure rate of the most recent N transactions); It is the receiving bank The backlog of pending transactions is obviously increasing when the receiving bank... When the number of pending transactions is 0 The value is 1.
[0045] Optionally, the method further includes: Based on the real-time data on the backlog of pending transactions and the real-time error rate of each receiving bank, the single-package limit of each receiving bank is dynamically updated.
[0046] Specifically, the single-package limit for each receiving bank is dynamically adjusted based on its throughput capacity: receiving banks are monitored and analyzed in real time. The number of pending transactions is counted using a sliding window to identify receiving banks. Real-time error rate, dynamically updated receiving bank Single package limit Based on this, the processing capacity of the receiving bank is dynamically controlled.
[0047] If the single package limit exceeds the preset threshold, a circuit breaker operation will be triggered, and the receiving bank's transaction will be moved to the retry queue.
[0048] The preset threshold can be a threshold set in advance based on actual needs or experience. When the single package limit of a receiving bank exceeds this threshold, the circuit breaker is triggered, and the transactions of that receiving bank are moved to the retry queue.
[0049] Specifically, if the receiving bank Single package limit If a preset threshold is reached, a circuit breaker will be triggered, and the receiving bank will be blocked. The transaction was moved to the retry queue.
[0050] Read transactions from the retry queue and retry transactions for the receiving bank that has experienced a circuit breaker based on the retry interval.
[0051] Specifically, an adaptive recovery mechanism is designed: an exponential backoff probing strategy is adopted, reading transactions from the retry queue for retry probing. For a circuit breaker-triggered receiving bank, a retry is initiated after 5 seconds for the first failure, 10 seconds after the second failure, 15 seconds after the third failure, and so on, with a maximum retry interval of 300 seconds (these values can be adjusted independently; this embodiment does not impose a limitation). After a successful retry, transactions in the retry queue are processed first, followed by transactions in the pending transaction queue.
[0052] Optionally, the capacity-split batch set may include both large and small batches.
[0053] Based on a threshold number of transactions, the number of batch transfers for each user is divided to obtain a set of capacity-split batches, including: Batch transfers exceeding the threshold number of transactions will be classified into larger batches.
[0054] Batch transfers with a number of transactions less than or equal to the threshold will be divided into smaller batches.
[0055] Specifically, the number of batch transfers N can be divided into large batches (N>θ) and small batches (N≤θ) based on a preset threshold θ. Large batch transfers with more transactions take longer to process, which can compress the processing time of small batch transfers with fewer transactions. Processing large and small batches separately can better improve the customer experience.
[0056] Optionally, the first processing process partitioning result is determined based on the capacity-split batch set, including: Large batches in the capacity-split batch set are assigned to the large batch processing process; small batches in the capacity-split batch set are assigned to the small batch processing process. The result of the large batch processing process and the small batch processing process is determined as the first processing process partitioning result.
[0057] In practice, large batches are processed by large batch processes, while small batches are processed by small batch processes. Large batch transfers with a large number of transactions take longer to process, which can squeeze the processing time of small batch transfers with a smaller number of transactions. Processing large and small batches separately can better improve the customer experience.
[0058] Optionally, the priority sub-batch set includes: expedited sub-batch, priority sub-batch, and regular sub-batch.
[0059] The second processing process partitioning result is determined based on the first processing process partitioning result and the priority sub-batch set, including: Large batch processing processes are divided into three queues based on urgency, priority, and normal, resulting in an urgency queue, a priority queue, and a normal queue for large batch processing processes. Small batch processing processes are also divided into three queues based on urgency, priority, and normal, resulting in an urgency queue, a priority queue, and a normal queue for small batch processing processes. These six division results are determined as the second processing process division results.
[0060] In practice, large and small batches are further split according to customer priority tags (urgent / priority / normal) to generate priority sub-batches, ensuring that high-priority transactions are processed by the core system first. The processing method for the three sub-batch types of urgent / priority / normal can be as follows: priority is given to processing "priority" level transactions proportionally, followed by "normal" level transactions; the "urgent" level is used to skip the queue for urgent transactions in special scenarios.
[0061] Figure 2 This is a specific operational reference diagram for splitting data according to customer priority tags in an embodiment of the present invention. For example... Figure 2 As shown, "priority" level transactions enter the "priority queue," and "normal" level transactions enter the "normal queue." For example, the priority processing ratio for "urgent," "priority," and "normal" transactions can be set to 1:6:3, with the core system's accounting thread processing 2000 transactions at a time. "Urgent" level transactions enter the "urgent queue," with 200 transactions being moved to the front of the "priority queue" each time. The core system's accounting thread first processes the 1400 transactions at the head of the "priority queue," and finally processes the 600 transactions at the head of the "normal queue."
[0062] As an exemplary description of an embodiment of the present invention, the implementation process will be illustrated below with reference to the technical solution of the present invention.
[0063] Assume that four customers, A, B, C, and D, successively conduct batch transfer transactions. Their priority and number of transactions are shown in Table 1. After adopting the technical solution of the present invention, the processing procedure is as follows: Optionally, a threshold for the number of transactions in large and small batches can be set to 100. Assume Bank A's TPS is 500, Bank B's TPS is 150, and Bank C's TPS is 100. This is during peak business hours, and the dynamic adjustment coefficient... Set to 0.8; Error penalty factor Set to 0.5; Queue depth decay coefficient Set it to 0.9.
[0064] Step 1: Capacity Splitting. User A's batch transfer requests total 800 and are assigned to the "Large Batch Processing Process" for processing; Users B, C, and D have batch transfer requests totaling 10, 100, and 10 respectively and are all assigned to the "Small Batch Processing Process".
[0065] Step 2: Further split the large and small batches according to customer priority tags (Urgent / Priority / Regular). User A's priority is "Regular," so they enter the "Regular Queue" of the "Large Batch Processing Process" for core system accounting processing; User B's priority is "Regular," so they enter the "Regular Queue" of the "Small Batch Processing Process" for core system accounting processing; User C's priority is "Priority," so they enter the "Priority Queue" of the "Small Batch Processing Process" for core system accounting processing; User D's priority is "Urgent," so they enter the "Urgent Queue" of the "Small Batch Processing Process" to wait to be moved to the "Priority Queue" for core system accounting processing.
[0066] Without capacity splitting and customer priority splitting, customer A's 800 transactions would be fully recorded before customer B's 10 transactions could be processed. This would cause customer B, with a small business volume, to wait for a long time, which obviously cannot meet customer needs. Without customer priority splitting, customer D's expedited transactions would have to wait until all previous transactions were processed before they could be processed, which also obviously cannot meet customer needs.
[0067] Step 3: The message sending thread is split according to the receiving line.
[0068] After the core system completes the accounting, the message sending thread needs to package and process the messages according to the receiving bank.
[0069] If Bank A has no erroneous transactions and no congestion at this time, then Bank A's single-package limit is... =0.8×500×(1-0.5×0)× =400. At this point, the message sending thread sends messages in packets of 400, and the remaining transactions exceeding 400 wait. Obviously, if the packet limit is not dynamically adjusted according to the throughput capacity of each receiving bank, it may lead to a sharp increase in the system processing pressure of the receiving bank, resulting in transaction failures.
[0070] Multiple threads process and send messages for transactions originating from Bank A, Bank B, and Bank C, respectively. Each thread dynamically adjusts the single-message limit for different receiving banks. Clearly, without splitting the messages by receiving bank, if Bank A's processing speed is slower or Bank C processes fewer transactions, customers will still have to wait for Bank A's transactions to finish before receiving their own. This scenario obviously leads to a poor customer experience.
[0071] This invention proposes a batch transfer processing scheme based on multi-level splitting and priority scheduling. First, batches are divided into large and small batches according to the total number of batches. Then, batches are further divided according to customer priority. Finally, the single-batch limit is adaptively adjusted based on the receiving bank's capacity, while simultaneously considering both the receiving bank's throughput limit and customer priority allocation. This technical solution differs from existing stream-only or file-only splitting schemes. It is the first to combine receiving bank processing capacity, customer priority, and batch size to form a dynamic splitting logic, improving customer experience and effectively avoiding triggering the receiving bank's performance bottleneck, which could lead to a large number of transaction failures.
[0072] Example 2 Figure 3 This is a schematic diagram of a batch transfer device according to an embodiment of the present invention. This embodiment is applicable to batch transfer scenarios. The device can be implemented using software and / or hardware, and can be integrated into any device that provides batch transfer functionality, such as… Figure 3 As shown, the batch transfer device specifically includes: an acquisition and division module 201, a first determination module 202, a splitting module 203, a second determination module 204, a third determination module 205, and a sending module 206.
[0073] The acquisition and division module 201 is used to receive a batch transfer request, acquire the number of batch transfers corresponding to each user to be transferred in batches, and divide the number of batch transfers corresponding to each user based on the number of transfers threshold to obtain a capacity split batch set. The first determining module 202 is used to determine the first processing process division result based on the capacity splitting batch set; The splitting module 203 is used to split each batch in the capacity splitting batch set according to the customer priority corresponding to each user to be transferred in batches, so as to obtain a priority sub-batch set. The second determining module 204 is used to determine the second processing process partitioning result based on the first processing process partitioning result and the priority sub-batch set; The third determining module 205 is used to determine the single package limit of each receiving bank based on the throughput capacity of the receiving bank corresponding to each user to be transferred in batches, and to divide each sub-batch in the priority sub-batch set into single package units of the single package limit number. The sending module 206 is used to send messages to each receiving bank's batch transfer transactions based on the single packet unit, with each processing process in the second processing process division result performing message sending processing.
[0074] Optionally, the third determining module 205 is specifically used for: Obtain preset dynamic adjustment coefficients, error penalty factors, and queue depth decay coefficients, as well as throughput, real-time error rate, and backlog of pending transactions for each receiving bank; the real-time error rate is the failure rate of the target number of transfers within a preset time period; For each receiving bank, the upper limit of a single package is determined based on the dynamic adjustment coefficient, the error penalty factor, the queue depth decay coefficient, the throughput, the real-time error rate, and the number of pending transactions.
[0075] Optionally, the device is further specifically used for: Based on the real-time data on the backlog of pending transactions and the real-time error rate of each receiving bank, the single-package limit of each receiving bank is dynamically updated. If the single package limit is greater than the preset threshold, a circuit breaker operation is triggered, and the receiving bank's transaction is moved to the retry queue. Read the transactions from the retry queue and perform transaction retry operations on the receiving bank that has experienced a circuit breaker based on the retry interval.
[0076] Optionally, the capacity splitting batch set includes large batches and small batches; The acquisition and division module 201 is specifically used for: The number of batch transfers exceeding the threshold number will be divided into large batches. The number of batch transfers less than or equal to the threshold number are divided into smaller batches.
[0077] Optionally, the first determining module 202 is specifically used for: Divide the large batches in the capacity splitting batch set into large batch processing processes; The smaller batches in the capacity-split batch set are divided into smaller batch processing processes.
[0078] Optionally, the priority sub-batch set includes: expedited sub-batch, priority sub-batch, and normal sub-batch; The second determining module 204 is specifically used for: The large batch processing process is divided into three queues according to urgency, priority and normal, resulting in the urgency queue, priority queue and normal queue of the large batch processing process. The batch processing process is divided into three queues: expedited, priority, and normal. These queues are called the expedited queue, the priority queue, and the normal queue for the batch processing process.
[0079] The above-mentioned products can execute the batch transfer method provided in any embodiment of the present invention, and have the corresponding functional modules and beneficial effects of the execution method.
[0080] Example 3 Figure 4A schematic diagram of an electronic device 30 that can be used to implement embodiments of the present invention is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices (e.g., helmets, glasses, watches, etc.), and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the invention described and / or claimed herein.
[0081] like Figure 4 As shown, the electronic device 30 includes at least one processor 31 and a memory, such as a read-only memory (ROM) 32 or a random access memory (RAM) 33, communicatively connected to the at least one processor 31. The memory stores computer programs executable by the at least one processor. The processor 31 can perform various appropriate actions and processes based on the computer program stored in the ROM 32 or loaded from storage unit 38 into the RAM 33. The RAM 33 can also store various programs and data required for the operation of the electronic device 30. The processor 31, ROM 32, and RAM 33 are interconnected via a bus 34. An input / output (I / O) interface 35 is also connected to the bus 34.
[0082] Multiple components in electronic device 30 are connected to I / O interface 35, including: input unit 36, such as keyboard, mouse, etc.; output unit 37, such as various types of monitors, speakers, etc.; storage unit 38, such as disk, optical disk, etc.; and communication unit 39, such as network card, modem, wireless transceiver, etc. Communication unit 39 allows electronic device 30 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.
[0083] Processor 31 can be a variety of general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of processor 31 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various processors running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. Processor 31 performs the various methods and processes described above, such as batch transfer methods: After receiving a batch transfer request, obtain the number of batch transfers corresponding to each user to be transferred in batches, and divide the number of batch transfers corresponding to each user based on the number of transfers threshold to obtain a capacity split batch set. The first processing process partitioning result is determined based on the capacity splitting batch set; Each batch in the capacity splitting batch set is split according to the customer priority corresponding to each user to be transferred in batches, to obtain a priority sub-batch set; The second processing process division result is determined based on the first processing process division result and the priority sub-batch set; The single-package limit of each receiving bank is determined based on the throughput capacity of the receiving bank corresponding to each user to be transferred in batches, and each sub-batch in the priority sub-batch set is divided into single-package units of the single-package limit number. Based on the single packet unit, each processing process in the second processing process division result performs message sending processing for the batch transfer transactions of each receiving bank.
[0084] In some embodiments, the bulk transfer method may be implemented as a computer program tangibly contained in a computer-readable storage medium, such as storage unit 38. In some embodiments, part or all of the computer program may be loaded and / or installed on electronic device 30 via ROM 32 and / or communication unit 39. When the computer program is loaded into RAM 33 and executed by processor 31, one or more steps of the bulk transfer method described above may be performed. Alternatively, in other embodiments, processor 31 may be configured to perform the bulk transfer method by any other suitable means (e.g., by means of firmware).
[0085] Various embodiments of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-a-chip (SoCs), payload-programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include implementations in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which may be a dedicated or general-purpose programmable processor, capable of receiving data and instructions from a storage system, at least one input device, and at least one output device, and transmitting data and instructions to the storage system, the at least one input device, and the at least one output device.
[0086] Computer programs used to implement the methods of the present invention may be written in any combination of one or more programming languages. These computer programs may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, such that when executed by the processor, the computer programs cause the functions / operations specified in the flowcharts and / or block diagrams to be performed. The computer programs may be executed entirely on a machine, partially on a machine, or as a standalone software package, partially on a machine and partially on a remote machine, or entirely on a remote machine or server.
[0087] In the context of this invention, a computer-readable storage medium can be a tangible medium that may contain or store a computer program for use by or in conjunction with an instruction execution system, apparatus, or device. A computer-readable storage medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination thereof. Alternatively, a computer-readable storage medium may be a machine-readable signal medium. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.
[0088] To provide interaction with a user, the systems and techniques described herein can be implemented on an electronic device having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the electronic device. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including sound input, voice input, or tactile input).
[0089] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as data servers), or middleware components (e.g., application servers), or frontend components (e.g., user computers with graphical user interfaces or web browsers through which users can interact with implementations of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., communication networks). Examples of communication networks include local area networks (LANs), wide area networks (WANs), blockchain networks, and the Internet.
[0090] A computing system can include clients and servers. Clients and servers are generally located far apart and typically interact through communication networks. The client-server relationship is created by computer programs running on the respective computers and having a client-server relationship with each other. The server can be a cloud server, also known as a cloud computing server or cloud host, which is a hosting product within the cloud computing service system to address the shortcomings of traditional physical hosts and VPS services, such as high management difficulty and weak business scalability.
[0091] In one embodiment, the present invention further includes a computer program product, which includes a computer program that, when executed by a processor, implements the batch transfer method of any embodiment of the present invention.
[0092] In implementing the computer program product, computer program code for performing the operations of this invention can be written in one or more programming languages or a combination thereof. Programming languages include object-oriented programming languages such as Java, Smalltalk, and C++, as well as conventional procedural programming languages such as C or similar languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0093] It should be understood that the various forms of processes shown above can be used, with steps reordered, added, or deleted. For example, the steps described in this invention can be executed in parallel, sequentially, or in different orders, as long as the desired result of the technical solution of this invention can be achieved, and this is not limited herein.
[0094] The specific embodiments described above do not constitute a limitation on the scope of protection of this invention. Those skilled in the art should understand that various modifications, combinations, sub-combinations, and substitutions can be made according to design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of this invention should be included within the scope of protection of this invention.
Claims
1. A batch transfer method, characterized in that, include: After receiving a batch transfer request, obtain the number of batch transfers corresponding to each user to be transferred in batches, and divide the number of batch transfers corresponding to each user based on the number of transfers threshold to obtain a capacity split batch set. The first processing process partitioning result is determined based on the capacity splitting batch set; Each batch in the capacity splitting batch set is split according to the customer priority corresponding to each user to be transferred in batches, to obtain a priority sub-batch set; The second processing process division result is determined based on the first processing process division result and the priority sub-batch set; The single-package limit of each receiving bank is determined based on the throughput capacity of the receiving bank corresponding to each user to be transferred in batches, and each sub-batch in the priority sub-batch set is divided into single-package units of the single-package limit number. Based on the single packet unit, each processing process in the second processing process division result performs message sending processing for the batch transfer transactions of each receiving bank.
2. The method according to claim 1, characterized in that, The single-package limit for each receiving bank is determined based on the throughput capacity of the receiving bank corresponding to each user awaiting batch transfers, including: Obtain preset dynamic adjustment coefficients, error penalty factors, and queue depth decay coefficients, as well as throughput, real-time error rate, and backlog of pending transactions for each receiving bank; the real-time error rate is the failure rate of the target number of transfers within a preset time period; For each receiving bank, the upper limit of a single package is determined based on the dynamic adjustment coefficient, the error penalty factor, the queue depth decay coefficient, the throughput, the real-time error rate, and the number of pending transactions.
3. The method according to claim 2, characterized in that, Also includes: Based on the real-time data on the backlog of pending transactions and the real-time error rate of each receiving bank, the single-package limit of each receiving bank is dynamically updated. If the single package limit is greater than the preset threshold, a circuit breaker operation is triggered, and the receiving bank's transaction is moved to the retry queue. Read the transactions from the retry queue and perform transaction retry operations on the receiving bank that has experienced a circuit breaker based on the retry interval.
4. The method according to claim 1, characterized in that, The capacity splitting batch set includes large batches and small batches; Based on a threshold number of transactions, the number of batch transfers for each user is divided to obtain a set of capacity-split batches, including: The number of batch transfers exceeding the threshold number will be divided into large batches. The number of batch transfers less than or equal to the threshold number are divided into smaller batches.
5. The method according to claim 4, characterized in that, The first processing process partitioning result is determined based on the capacity-split batch set, including: Divide the large batches in the capacity splitting batch set into large batch processing processes; The smaller batches in the capacity-split batch set are divided into smaller batch processing processes.
6. The method according to claim 5, characterized in that, The priority sub-batch set includes: expedited sub-batch, priority sub-batch, and normal sub-batch; The second processing process partitioning result is determined based on the first processing process partitioning result and the priority sub-batch set, including: The large batch processing process is divided into three queues according to urgency, priority and normal, resulting in the urgency queue, priority queue and normal queue of the large batch processing process. The batch processing process is divided into three queues: expedited, priority, and normal. These queues are called the expedited queue, the priority queue, and the normal queue for the batch processing process.
7. A batch transfer device, characterized in that, include: The acquisition and partitioning module is used to receive batch transfer requests, obtain the number of batch transfers corresponding to each user to be transferred in batches, and partition the number of batch transfers corresponding to each user based on the number of transfers threshold to obtain a capacity-split batch set. The first determining module is used to determine the first processing process partitioning result based on the capacity splitting batch set; The splitting module is used to split each batch in the capacity splitting batch set according to the customer priority corresponding to each user to be transferred in batches, so as to obtain a priority sub-batch set. The second determining module is used to determine the second processing process partitioning result based on the first processing process partitioning result and the priority sub-batch set; The third determining module is used to determine the single package limit of each receiving bank based on the throughput capacity of the receiving bank corresponding to each user to be transferred in batches, and to divide each sub-batch in the priority sub-batch set into single package units of the single package limit number. The sending module is used to send messages to each receiving bank's batch transfer transactions based on the single packet unit, with each processing process in the second processing process division result handling the message sending process.
8. An electronic device, characterized in that, The electronic device includes: At least one processor; and A memory communicatively connected to the at least one processor; wherein, The memory stores a computer program that can be executed by the at least one processor, the computer program being executed by the at least one processor to enable the at least one processor to perform the bulk transfer method according to any one of claims 1-6.
9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions that, when executed by a processor, implement the batch transfer method according to any one of claims 1-6.
10. A computer program product comprising a computer program that, when executed by a processor, implements the batch transfer method according to any one of claims 1-6.