Method, device and computer equipment for determining the number of concurrent call conversations

By acquiring concurrent call volume and time period information from the call system, and dynamically monitoring the effective concurrent call volume of the media unit, the problem of fixed allocation ratio in media unit load balancing is solved, achieving high-precision call allocation and load balancing.

CN115883565BActive Publication Date: 2026-07-21ZHAOLIAN CONSUMER FINANCE CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
ZHAOLIAN CONSUMER FINANCE CO LTD
Filing Date
2022-11-24
Publication Date
2026-07-21

AI Technical Summary

Technical Problem

In existing technologies, the load balancing method for media machines uses a fixed allocation ratio, which leads to incorrect distribution of calls across different media machines and makes it impossible to accurately adjust the number of concurrent calls on each media machine.

Method used

By obtaining the call request time and the number of concurrent requests, the event time period and the request order are determined, the effective concurrent number of the target media machine is monitored, and when the processing time falls within the event time period, the actual remaining target concurrent number is determined based on the number of concurrent requests, the order, and the effective concurrent number.

Benefits of technology

Dynamic load balancing of the media unit was achieved, which improved the accuracy of call allocation, avoided erroneous concurrent access caused by processing time exceeding the event time period, and ensured high-precision control.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115883565B_ABST
    Figure CN115883565B_ABST
Patent Text Reader

Abstract

The application relates to a call conversation concurrent quantity determination method, device and computer equipment. The method comprises the following steps: obtaining an application time and an application concurrent quantity of a call conversation when the call conversation is in progress; determining an event time period to which the application time belongs, and determining an application order of the call conversation in the event time period; determining a target media machine in the media machine cluster and an effective concurrent quantity of the target media machine in the event time period according to the application order; processing a service of the call conversation, and determining a processing time of the service processing; when the processing time belongs to the event time period, determining a target concurrent quantity actually remaining in the target media machine according to the application concurrent quantity, the application order and the effective concurrent quantity; since the target concurrent quantity can be used to determine the call conversation not yet carried by the target media machine, the load balancing of the target media machine can be realized by using the method.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a method, apparatus and computer device for determining the number of concurrent calls. Background Technology

[0002] With the development of communication technology, communication between the call system and the media unit has been realized. When the call system initiates a large number of calls, it is usually necessary to distribute multiple calls to different media units to ensure that each media unit can maintain a balanced load.

[0003] Currently, static load balancing is commonly used, which involves pre-setting different allocation ratios for different media units, allowing the call system to adjust the remaining concurrent connections for each media unit according to these ratios. However, different media units consume resources differently, and using a fixed allocation ratio may result in multiple calls being incorrectly distributed across different media units. Therefore, how to accurately adjust the remaining concurrent connections for each media unit to achieve load balancing is the problem this application aims to solve. Summary of the Invention

[0004] Therefore, it is necessary to provide a method, apparatus, computer equipment, storage medium, and computer program product that can determine the number of concurrent calls and achieve load balancing of media machines to address the above-mentioned technical problems.

[0005] Firstly, this application provides a method for determining the number of concurrent call sessions. This includes:

[0006] When making a call with a media machine cluster, the request time and the number of concurrent requests for the call are obtained; the number of concurrent requests represents the number of threads requested from the media machines in the media machine cluster.

[0007] Determine the event time period to which the application time belongs, and determine the application order of the call within the event time period;

[0008] Based on the application sorting, the target media machine in the media machine cluster and the effective concurrent number of the target media machine are determined within the event time period; the effective concurrent number is obtained by monitoring the target media machine for events.

[0009] Perform service processing on the call and determine the processing time for the service processing;

[0010] When the processing time falls within the event time period, the actual remaining target concurrent number of the target media device is determined based on the number of concurrent applications, the application order, and the effective concurrent number; the target concurrent number is used to determine the call volume that the target media device has not yet carried.

[0011] In one embodiment, determining the target media machine corresponding to the event time period and the effective concurrent number of the target media machine based on the application sorting includes: when the application sorting is first, performing validity checks on each media machine within the event time period to obtain a check result corresponding to each media machine; when the check result indicates that the media machine is maintaining communication with the call system, designating the media machine as the target media machine; performing event monitoring on the target media machine within the event time period; the event monitoring is used to trigger the target media machine to determine the corresponding target monitoring result; receiving the target monitoring result transmitted by the target media machine through the target channel, and determining the effective concurrent number of the target media machine based on the target monitoring result.

[0012] In one embodiment, the target media machine includes multiple sub-media machines; the target monitoring result includes the load, real-time concurrency, and resource utilization rate of each sub-media machine; the effective concurrency rate includes the sub-effective concurrency rate of each sub-media machine; determining the effective concurrency rate of the target media machine based on the target monitoring result includes: summing the loads of each sub-media machine to obtain a total load, and determining the load ratio between the load of the current sub-media machine and the total load for each sub-media machine; obtaining the maximum concurrency rate of the current sub-media machine, and determining a first difference between the maximum concurrency rate and the real-time concurrency rate of the current sub-media machine; and obtaining the sub-effective concurrency rate of the current sub-media machine based on the load ratio, the first difference, and the resource utilization rate of the current sub-media machine.

[0013] In one embodiment, determining the target media device corresponding to the event time period and the effective concurrent number of the target media device according to the application sorting includes: when the application sorting is not the first position, determining the adjacent position in the event time period that is in the previous position before the non-first position; and using the target media device and the effective concurrent number of the target media device determined in the adjacent position as the target media device and the effective concurrent number of the target media device corresponding to the non-first position.

[0014] In one embodiment, the application sorting includes first or non-first position; determining the actual remaining target concurrent number of the target media device based on the application concurrency number, the application sorting, and the effective concurrency number includes: when the application sorting is first position, determining a second difference between the effective concurrency number and the application concurrency number; using the second difference as the actual remaining target concurrent number of the target media device when the application sorting is first position; when the application count is non-first position, determining the adjacent position in the event time period that is the previous non-first position; obtaining the actual remaining target concurrent number of the target media device when the application sorting is adjacent position, and determining a third difference between the target concurrent number corresponding to the adjacent position and the application concurrency number; using the third difference as the actual remaining target concurrent number of the target media device when the application sorting is non-first position.

[0015] In one embodiment, the method further includes: when the processing time does not belong to the event time period, taking the processing time as a new application time and returning to the step of determining the event time period to which the application time belongs to continue.

[0016] In one embodiment, after determining the actual remaining target concurrent number of the target media device based on the number of concurrent requests, the request order, and the effective concurrent number, the method further includes: when making a second call with the media device cluster, obtaining the second request time and the second request concurrent number of the second call; determining the reference event time period to which the second request time belongs; if the reference event time period is the next time period after the event time period, comparing the difference between the actual remaining target concurrent number of the target media device and the second request concurrent number; if the second request concurrent number is greater than the actual remaining target concurrent number of the target media device, then not using the target media device as the target media device for the second call.

[0017] Secondly, this application also provides a device for determining the number of concurrent calls. It includes:

[0018] The call module is used to obtain the request time and the number of concurrent requests when making a call with a media machine cluster; the number of concurrent requests represents the number of threads requested from media machines in the media machine cluster; determine the event time period to which the request time belongs, and determine the request order of the call within the event time period;

[0019] An effective concurrency determination module is used to determine the target media machine in the media machine cluster and the effective concurrency of the target media machine within the event time period based on the application sorting; the effective concurrency is obtained by monitoring the target media machine through event monitoring; the module performs service processing on the call and determines the processing time of the service processing;

[0020] The target concurrency determination module is used to determine the actual remaining target concurrency of the target media device based on the application concurrency number, the application order, and the effective concurrency number when the processing time belongs to the event time period; the target concurrency number is used to determine the call calls that the target media device has not yet carried.

[0021] Thirdly, this application also provides a computer device. The computer device includes a memory and a processor, the memory storing a computer program, and the processor executing the computer program to perform the following steps:

[0022] When making a call with a media machine cluster, the request time and the number of concurrent requests for the call are obtained; the number of concurrent requests represents the number of threads requested from the media machines in the media machine cluster.

[0023] Determine the event time period to which the application time belongs, and determine the application order of the call within the event time period;

[0024] Based on the application sorting, the target media machine in the media machine cluster and the effective concurrent number of the target media machine are determined within the event time period; the effective concurrent number is obtained by monitoring the target media machine for events.

[0025] Perform service processing on the call and determine the processing time for the service processing;

[0026] When the processing time falls within the event time period, the actual remaining target concurrent number of the target media device is determined based on the number of concurrent applications, the application order, and the effective concurrent number; the target concurrent number is used to determine the call volume that the target media device has not yet carried.

[0027] Fourthly, this application also provides a computer-readable storage medium. The computer-readable storage medium stores a computer program, which, when executed by a processor, performs the following steps:

[0028] When making a call with a media machine cluster, the request time and the number of concurrent requests for the call are obtained; the number of concurrent requests represents the number of threads requested from the media machines in the media machine cluster.

[0029] Determine the event time period to which the application time belongs, and determine the application order of the call within the event time period;

[0030] Based on the application sorting, the target media machine in the media machine cluster and the effective concurrent number of the target media machine are determined within the event time period; the effective concurrent number is obtained by monitoring the target media machine for events.

[0031] Perform service processing on the call and determine the processing time for the service processing;

[0032] When the processing time falls within the event time period, the actual remaining target concurrent number of the target media device is determined based on the number of concurrent applications, the application order, and the effective concurrent number; the target concurrent number is used to determine the call volume that the target media device has not yet carried.

[0033] Fifthly, this application also provides a computer program product. The computer program product includes a computer program that, when executed by a processor, performs the following steps:

[0034] When making a call with a media machine cluster, the request time and the number of concurrent requests for the call are obtained; the number of concurrent requests represents the number of threads requested from the media machines in the media machine cluster.

[0035] Determine the event time period to which the application time belongs, and determine the application order of the call within the event time period;

[0036] Based on the application sorting, the target media machine in the media machine cluster and the effective concurrent number of the target media machine are determined within the event time period; the effective concurrent number is obtained by monitoring the target media machine for events.

[0037] Perform service processing on the call and determine the processing time for the service processing;

[0038] When the processing time falls within the event time period, the actual remaining target concurrent number of the target media device is determined based on the number of concurrent applications, the application order, and the effective concurrent number; the target concurrent number is used to determine the call volume that the target media device has not yet carried.

[0039] The aforementioned method, apparatus, computer equipment, storage medium, and computer program product for determining the concurrent call count obtains the application time and the number of concurrent applications when making a call with a media machine cluster. This allows for the determination of the event time period to which the application time belongs, as well as the application order of the calls within that event time period. Based on the application order, the target media machine in the media machine cluster and the effective concurrent count of the target media machine within the event time period can be determined. By determining the processing time for the call's business processing, and when the processing time falls within the event time period, the actual remaining target concurrent count of the target media machine can be determined based on the number of concurrent applications, the application order, and the effective concurrent count. Since this application determines the target concurrent count based on the event time period, the target concurrent count directly determines the call counts that the target media machine has not yet handled. Therefore, it can accurately reflect the dynamic load balancing of the target media machine within the event time period. Furthermore, compared to the traditional method of using a fixed allocation ratio to determine the remaining concurrent count of each media machine, this application monitors the effective concurrent count of the target media machine only after the target media machine has been identified, improving the accuracy of call allocation to the target media machine.

[0040] Furthermore, since the number of concurrent requests allocated to the target media machine does not represent the actual use of the requested concurrent requests in the target media machine, but rather a kind of use that needs to be requested in subsequent operations, a pre-deduction of concurrent requests for the target media machine is implemented. This ensures high-precision control of the target media machine and avoids the use of concurrent requests based on an incorrect effective concurrent request when the processing time exceeds the event time period. Attached Figure Description

[0041] Figure 1 This is an application environment diagram of a method for determining the number of concurrent calls in one embodiment;

[0042] Figure 2 This is a flowchart illustrating a method for determining the number of concurrent calls in one embodiment;

[0043] Figure 3 This is a schematic diagram illustrating the principle of a method for determining the number of concurrent calls in one embodiment;

[0044] Figure 4 This is a flowchart illustrating the process of determining the effective number of concurrent connections in one embodiment;

[0045] Figure 5 This is a structural block diagram of a device for determining the number of concurrent calls in one embodiment;

[0046] Figure 6 This is an internal structural diagram of a computer device in one embodiment. Detailed Implementation

[0047] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.

[0048] The method for determining the number of concurrent calls provided in this application can be applied to, for example... Figure 1 In the application environment shown, the call system 102 communicates with the media machine cluster 104 via a network. A data storage system can store the data that the media machine cluster 104 needs to process. The data storage system can be integrated onto the media machine cluster 104 or placed in the cloud or on other network servers. When initiating a call to the media machine cluster 104, the call system 102 is used to obtain the call request time and the number of concurrent requests; determine the event time period to which the request time belongs, and determine the request order of the call within the event time period; the call system 102 is also used to determine the target media machine in the media machine cluster 104 within the event time period, and the effective concurrent number of the target media machine, based on the request order; perform business processing on the call, and determine the processing time of the business processing; when the processing time belongs to the event time period, determine the actual remaining target concurrent number of the target media machine based on the number of concurrent requests, the request order, and the effective concurrent number. The call system 102 can be, but is not limited to, various personal computers, laptops, smartphones, tablets, and portable wearable devices, and the media machine cluster 104 can be implemented using a standalone server or a server cluster composed of multiple servers.

[0049] In one embodiment, such as Figure 2 As shown, a method for determining the number of concurrent call sessions is provided. This method consists of... Figure 1 The call system execution includes the following steps:

[0050] Step 202: When making a call with the media machine cluster, obtain the call request time and the number of concurrent requests.

[0051] The concurrent request count represents the number of threads requested from media machines in the media machine cluster; the concurrent request count is usually multiple.

[0052] Specifically, such as Figure 3 As shown, Figure 3This is a schematic diagram illustrating the principle behind determining the concurrency of a call. The caller is the entity initiating the call within the call system. When the call system responds to a user's call request, it receives a large batch of number information pushed from the upstream system through the caller. This information is then parsed using a pre-defined algorithm to determine the request time and the required concurrency for the current call.

[0053] In one embodiment, the ratio of call volume to concurrent requests can be a preset ratio, such as 1:2, meaning that one call volume requires two concurrent requests in the media unit.

[0054] In one embodiment, the media machine cluster can be an open-source, multi-protocol voice communication softswitch platform, such as a FreeSwitch cluster, which includes multiple FreeSwitch instances.

[0055] In one embodiment, when the calling system makes a call to the media unit cluster, a concurrency pool associated with the media unit cluster is triggered. The concurrency pool includes a sub-concurrency pool corresponding to each media unit. Each sub-concurrency pool performs unified management and control over the resources of its corresponding media unit.

[0056] In one embodiment, the caller initiates a concurrent request to the concurrent pool, wherein the concurrent request includes the request time and the number of concurrent requests.

[0057] In one embodiment, before the call system initiates a call with the media unit cluster, the call system, in response to the user's configuration operation, pre-configures the traffic, traffic weight, and maximum concurrent connections for different media units, obtaining the configuration information corresponding to each media unit. For example, when media unit 1 is a 4-core 8GB device, it is determined that the maximum concurrent connection for media unit 1 under full traffic is 800. When media unit 2 is an 8-core 16GB device, it is determined that the maximum concurrent connection for media unit 2 under full traffic is 1600. In this case, the traffic weights for media unit 1 and media unit 2 are 1:2.

[0058] In one embodiment, before the calling system initiates a call with the media unit cluster, in response to the user's communication configuration operation, the calling system establishes a bidirectional target channel based on a target protocol with each media unit in the media unit cluster. The target protocol can be the ESL protocol, and the target channel can be a socket channel. The target protocol allows the media units to execute relevant commands.

[0059] Step 204: Determine the event time period to which the application time belongs, and determine the application order of the call within the event time period.

[0060] The event time period is a periodic time period, for example, every 3 seconds is a cycle.

[0061] Specifically, since the call system may respond to multiple call requests from users within the same event time period, resulting in multiple call transactions, the call system needs to determine the order of these call requests within the event time period. This order includes first-time and non-first-time requests.

[0062] Step 206: Based on the application sorting, determine the target media machine in the media machine cluster within the event time period, and the effective concurrent number of the target media machine.

[0063] The effective concurrent number is obtained by monitoring events on the target media machine.

[0064] Specifically, the call system selects the target media machine from multiple media machines in the media machine cluster according to preset detection rules. Each target media machine includes at least one sub-media machine. The specific implementation process for determining the effective concurrent count for each sub-media machine is the same and can be summarized as the specific implementation process for determining the effective concurrent count of the target media machine. For simplicity, the specific implementation process for determining the effective concurrent count of the target media machine is used as an example here. When the call request ranks first in the event time period, the call system performs event monitoring on the target media machine to obtain the effective concurrent count of the target media machine.

[0065] For example, for application 1 which ranks first in time period 1, the target media machines selected include media machine 1 and media machine 2, and the effective concurrent number of the target media machines is A.

[0066] In one embodiment, determining the target media device and the effective concurrent number of the target media device corresponding to the event time period based on the application order includes: when the application order is not the first position, determining the adjacent position in the previous non-first position of the event time period; and using the target media device and the effective concurrent number of the target media device determined when the adjacent position is the target media device and the effective concurrent number of the target media device when the application order is not the first position.

[0067] Specifically, when the call system determines that a call is not the first one, it determines the adjacent position in the event time period that was not the first one. For example, if application 2 is the second one and not the first one, then the adjacent position in time period 1 is application 1, which is the first one. When the applications are sorted into adjacent positions, the target media device and the effective concurrent number of the target media device corresponding to the event time period are used as the target media device and the effective concurrent number of the target media device when the application is not the first one. That is, Media Device 1 and Media Device 2 in the target media device corresponding to application 1 are both used as the target media device corresponding to application 2, and the effective concurrent number A corresponding to application 1 is used as the effective concurrent number corresponding to application 2.

[0068] In one embodiment, reference Figure 3 As shown, when the number of concurrent call requests is determined, and the target media device includes multiple sub-media devices, the call system allocates the number of concurrent requests to each sub-media device according to the pre-configured configuration information of each sub-media device and the principle of weighted allocation. For example, if the traffic weight of media device 1 and media device 2 in the configuration information is 1:2, when the number of concurrent requests is 60, it is determined that 20 concurrent requests are allocated to media device 1 and 40 concurrent requests are allocated to media device 2.

[0069] In one embodiment, the call system determines the effective concurrent access limit for each sub-media device through its corresponding sub-concurrency pool. The call system then allocates the requested concurrent access limit for each sub-media device using its respective sub-concurrency pool.

[0070] Step 208: Perform business processing on the call and determine the processing time for the business processing.

[0071] Specifically, the call system determines the monitoring data when performing event monitoring on the target media unit and updates the monitoring data. The call system can also calculate the number of call calls required for each sub-media unit based on its corresponding concurrent request count. For example, if media unit 1 is allocated 20 concurrent requests, it requires 10 call calls. The calculation of the required number of call calls involves communication operations and interface reading operations from the remote user dialing authentication system. Once these operations are completed, the business processing is finished, and the processing time is determined.

[0072] Step 210: When the processing time falls within the event time period, determine the actual remaining target concurrent number of the target media machine based on the number of concurrent applications, the application order, and the effective concurrent number.

[0073] The target concurrent number is used to determine the call volume that the target media device has not yet carried.

[0074] Specifically, when the call system processes business requests, interface call timeouts may occur due to network issues, causing the processing time to exceed the event time period. For cases where the processing time falls within the event time period, the call system can compare the requested concurrency number with the effective concurrency number. When the requested concurrency number is less than or equal to the effective concurrency number, it indicates that the requested concurrency number can actually be requested from the target media unit. In this case, the call system can iteratively deduct from the effective concurrency number, determining the number of iterations based on the call's order of requests within the event time period, until the actual remaining target concurrency number for the target media unit is obtained.

[0075] In one embodiment, reference Figure 3 As shown, the call system sends the requested concurrency number as the actual available concurrency number to the target media device through the target channel, so that the target media device can determine the call volume to be carried based on the requested concurrency number.

[0076] In one embodiment, when the processing time does not belong to the event time period, the processing time is taken as the new application time, and the process returns to the step of determining the event time period to which the application time belongs.

[0077] Specifically, refer to Figure 3 As shown, although the processing time for completing the business transaction exceeds the event time period, the call system will continuously monitor the event within the new event time period and determine the effective concurrency level for the new event time period. Therefore, the call system needs to treat the processing time as the new request time and return to the step of determining the event time period to which the request time belongs to continue until the actual remaining target concurrency level of the target media device is determined, that is, to re-submit a request for concurrency to the concurrency pool in the new event time period.

[0078] In this embodiment, by pre-judging whether the processing time falls within the event period before the target media device actually occupies the requested concurrent access, it is determined whether the time taken for the effective concurrent access is too long and whether it is necessary to re-request concurrent access. This avoids the problem of the processing time exceeding the event period, which would prevent the true reflection of the target media device's resource consumption within the event period. Therefore, high-precision control of the target media device is achieved, ensuring the effectiveness of load balancing for the target media device.

[0079] In the aforementioned method for determining the concurrent call count, the application time and concurrent call count when making a call with the media machine cluster are obtained to determine the event time period to which the application time belongs, and the application order of the call within the event time period. Thus, based on the application order, the target media machine in the media machine cluster and the effective concurrent call count of the target media machine within the event time period can be determined. By determining the processing time for the call's business processing, and when the processing time falls within the event time period, the actual remaining target concurrent call count of the target media machine can be determined based on the concurrent call count, application order, and effective concurrent call count. Since this application determines the target concurrent call count based on the event time period, the target concurrent call count can directly determine the call counts that the target media machine has not yet handled. Therefore, it can accurately reflect the dynamic load balancing of the target media machine within the event time period. Furthermore, compared to the traditional method of using a fixed allocation ratio to determine the remaining concurrent call count of each media machine, this application monitors the effective concurrent call count of the target media machine only after the target media machine has been identified, improving the accuracy of allocating call counts to the target media machine.

[0080] Furthermore, since the number of concurrent requests in a call is usually multiple, and a call is any one of multiple calls within an event time period, this solves the problem of wasted time and resources when only one call can be submitted or only a small number of concurrent requests can be made, thus improving communication efficiency for a large number of calls.

[0081] In one embodiment, such as Figure 4 As shown, based on the application sorting, the target media machine corresponding to the event time period and the effective concurrent number of the target media machine are determined, including the following steps:

[0082] Step 402: When the application is ranked first, perform validity checks on each media device within the event time period to obtain the corresponding check results for each media device.

[0083] Specifically, since a bidirectional target channel has been established between the call system and each media unit in the media unit cluster, the call system will perform a validity check on each media unit within a preset time period, that is, check whether each media unit maintains communication with the call system. When communication is not maintained, it indicates that the call system has not received information on resource consumption from the media unit within the preset time period, that is, the media unit may have experienced a network interruption or crash.

[0084] Step 404: When the detection result indicates that the media device is maintaining communication with the call system, the media device is designated as the target media device.

[0085] Among them, only media devices that maintain communication can be considered as valid target media devices.

[0086] In one embodiment, when the media unit cluster responds to the event listening of the call system, it sends the listening result corresponding to each media unit back to the call system. If the call system does not receive a listening result from a media unit within a preset time period, it indicates that the media unit cannot be used as the target media unit.

[0087] In one embodiment, when determining the effective concurrent number corresponding to the target media device, the calling system can compare the difference between the requested concurrent number and the effective concurrent number. When the requested concurrent number is greater than the effective concurrent number, it indicates that the target media device at this time cannot be regarded as the real target media device.

[0088] Step 406: Listen for events on the target media device during the event time period.

[0089] Among them, event listeners are used to trigger the target media device to determine the corresponding target listening result. Event listeners can represent the heartbeat event listening of the media device's resource consumption. Each heartbeat event corresponds to a heartbeat cycle, that is, an event time period.

[0090] In one embodiment, when the target media device responds to the event listening of the call system, the resource consumption of the target media device during the event time period is determined, and the target listening result corresponding to the target media device is determined based on the resource consumption.

[0091] Step 408: Receive the target monitoring results transmitted by the target media device through the target channel, and determine the effective concurrent number of the target media device based on the target monitoring results.

[0092] The target monitoring results include the load, real-time concurrency, and resource utilization of each sub-media machine, where resource utilization can be CPU utilization; the effective concurrency includes the effective concurrency of each sub-media machine.

[0093] In one embodiment, determining the effective concurrent number of the target media machine based on the target monitoring results includes: summing the loads corresponding to each sub-media machine to obtain the total load, and for each sub-media machine, determining the load ratio between the current sub-media machine's load and the total load; obtaining the maximum concurrent number of the current sub-media machine, and determining a first difference between the maximum concurrent number and the current sub-media machine's real-time concurrent number; and obtaining the sub-effective concurrent number corresponding to the current sub-media machine based on the load ratio, the first difference, and the current sub-media machine's resource utilization rate.

[0094] Specifically, when the target media machine includes multiple sub-media machines, the call system sums the load of each sub-media machine to obtain the total load. For example, the target monitoring result for media machine 1 includes a machine load of 4, a real-time concurrency of 500, and a resource utilization rate of 50%; the target monitoring result for media machine 2 includes a machine load of 2, a real-time concurrency of 100, and a resource utilization rate of 20%. Taking media machine 1 as an example and using it as the current sub-media machine for explanation, the call system determines the load ratio between the current sub-media machine's load and the total load, which is 4 / 6. Based on the pre-configured information, it determines the maximum concurrency of the current sub-media machine, which is 800 for media machine 1. The call system then determines the first difference between the maximum concurrency and the real-time concurrency of the current sub-media machine, which is 800 - 500 = 300. Based on the load ratio, the first difference, and the current resource utilization rate of the sub-media machine, the effective concurrency count corresponding to the current media machine is obtained, that is, the effective concurrency count corresponding to media machine 1 is A1 = 300 * (4 / 6) / 50%. By combining the effective concurrency counts corresponding to each sub-media machine, the effective concurrency count corresponding to the target media machine is obtained.

[0095] In this embodiment, after determining the target media machine by performing validity checks on each media machine, the target media machine can be accurately monitored for events, avoiding the incorrect allocation of concurrent requests to media machines that are not maintaining communication. At the same time, by obtaining the target monitoring results within the event time period, the effective concurrent number of the target media machine can be accurately obtained, ensuring the dynamic adjustment of the actual remaining target concurrent number and realizing load balancing of the target media machine.

[0096] Furthermore, since the communication between the call system and the media unit is a long-connection communication, the transmission of the target monitoring results is carried out by using target communication based on the target protocol, which ensures real-time data transmission and also realizes effective step-by-step control of the target media unit.

[0097] In one embodiment, the application sorting includes first or non-first position; determining the actual remaining target concurrent number of the target media device based on the application concurrency, application sorting, and effective concurrency, includes: when the application sorting is first, determining a second difference between the effective concurrency and the application concurrency; using the second difference as the actual remaining target concurrent number of the target media device when the application sorting is first; when the application count is non-first, determining the adjacent position that was previously non-first in the event time period; obtaining the actual remaining target concurrent number of the target media device when the application sorting is adjacent, and determining a third difference between the target concurrent number corresponding to the adjacent position and the application concurrency; using the third difference as the actual remaining target concurrent number of the target media device when the application sorting is non-first.

[0098] Specifically, when the application is ranked first, the call system can determine that the iteration number for deduction based on the effective concurrent number is one. That is, the second difference between the effective concurrent number and the applied concurrent number is directly used as the actual remaining target concurrent number for the target media device. Referring to the example above, if the applied concurrent number for application 1 is determined to be 60, and the effective concurrent number corresponding to the target media device is A, then the actual remaining target concurrent number for the target media device is determined to be A-60, meaning the number of calls not yet carried by the target media device is (A-60) / 2.

[0099] When the application is not in the first position, the calling system can determine that the number of iterations for deduction based on the effective concurrent quantity is multiple. The calling system determines the adjacent position before the non-first position in the event time period. Referring to the example above, when the non-first position is the second position of application 2, the adjacent position is application 1. At this time, the actual remaining target concurrent quantity of the target media device when the application is in the adjacent position is obtained, that is, A-60. The calling system uses the third difference between the target concurrent quantity corresponding to the adjacent position and the application concurrent quantity as the actual remaining target concurrent quantity of the target media device. For example, when the application concurrent quantity of application 1 is determined to be 100, the third difference (A-60)-100 is used as the actual remaining target concurrent quantity of the target media device when the application is not in the first position.

[0100] In this embodiment, the actual remaining target concurrent number of the target media device is determined by iterative deduction based on the different application order of the call calls within the same event time period. This ensures that the call system can accurately respond to multiple call calls within the same event time period. At the same time, since the same effective concurrent number is used as the basis for iterative deduction within the same event time period, the problem of large system load and resource waste caused by the need to monitor the resource consumption of the target media device in real time is avoided.

[0101] In one embodiment, after determining the actual remaining target concurrent number of the target media device based on the number of concurrent requests, the request order, and the effective concurrent number, the method further includes: when making another call with the media device cluster, obtaining the re-request time and the number of re-request concurrent requests for the second call; determining the reference event time period to which the re-request time belongs; if the reference event time period is the next time period after the event time period, comparing the difference between the actual remaining target concurrent number of the target media device and the number of re-request concurrent requests; if the number of re-request concurrent requests is greater than the actual remaining target concurrent number of the target media device, then not using the target media device as the target media device for the second call.

[0102] Specifically, when the call system makes a second call with the media unit cluster, similarly, referring to the specific implementation process of steps 202 and 204, the second request time, the number of concurrent requests, and the reference event time period to which the second request time belongs can be determined. If the reference event time period is the next time period after the event time period, referring to the example above, that is, when the event time period is time period 1, the reference event time period is time period 2. After request 1 and request 2, the actual remaining target concurrent number of the target media unit in time period 1 is (A-60)-100. If the number of concurrent requests at this time is (A-60)-80, it can be determined that the number of concurrent requests is greater than the actual remaining target concurrent number of the target media unit. Therefore, the target media unit at this time can no longer be used as the target media unit for the second call.

[0103] In this embodiment, for a re-call initiated in the next time period of the event time period, the number of re-requested concurrent calls is compared with the actual remaining target concurrent call number in the event time period. This determines whether the target media machine in the event time period can still be used as the target media machine in the reference event time period. This avoids the problem that the actual remaining target concurrent call number in the target media machine is insufficient to allocate the number of re-requested concurrent calls. Therefore, dynamic adjustment of the number of re-requested concurrent calls is achieved among different media machines.

[0104] It should be understood that although the steps in the flowcharts of the above embodiments are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowcharts of the above embodiments may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages of other steps.

[0105] Based on the same inventive concept, this application also provides a device for determining the concurrent number of call calls to implement the above-described method for determining the concurrent number of call calls. The solution provided by this device is similar to the solution described in the above method. Therefore, the specific limitations of one or more embodiments of the device for determining the concurrent number of call calls provided below can be found in the limitations of the method for determining the concurrent number of call calls described above, and will not be repeated here.

[0106] In one embodiment, such as Figure 5As shown, a device 500 for determining the concurrent number of call sessions is provided, comprising: a call session module 502, an effective concurrency determination module 504, and a target concurrency determination module 506, wherein:

[0107] The call module 502 is used to obtain the call request time and the number of concurrent requests when making a call with the media machine cluster; the number of concurrent requests represents the number of threads requested from the media machines in the media machine cluster; determine the event time period to which the request time belongs, and determine the request order of the call within the event time period.

[0108] The effective concurrency determination module 504 is used to determine the target media machine in the media machine cluster and the effective concurrency of the target media machine within the event time period based on the application sorting; the effective concurrency is obtained by monitoring the target media machine for events; the call is processed and the processing time of the service is determined.

[0109] The target concurrency determination module 506 is used to determine the actual remaining target concurrency of the target media device based on the number of applications for concurrency, the application order, and the effective concurrency when the processing time belongs to the event time period; the target concurrency is used to determine the call calls that the target media device has not yet carried.

[0110] In one embodiment, the effective concurrency determination module 504 further includes an event listening module 5041, which is used to perform validity checks on each media device during the event time period when the application is ranked first, and obtain the corresponding detection result for each media device; when the detection result indicates that the media device is maintaining communication with the call system, the media device is designated as the target media device; the target media device is monitored during the event time period; the event listening is used to trigger the target media device to determine the corresponding target listening result; the target listening result transmitted by the target media device through the target channel is received, and the effective concurrency of the target media device is determined based on the target listening result.

[0111] In one embodiment, the effective concurrency determination module 504 is further configured to sum up the load of each sub-media machine to obtain the total load, and for each sub-media machine, determine the load ratio between the current load of the sub-media machine and the total load; obtain the maximum concurrency of the current sub-media machine, and determine the first difference between the maximum concurrency and the real-time concurrency of the current sub-media machine; and obtain the sub-effective concurrency of the current sub-media machine based on the load ratio, the first difference, and the resource utilization rate of the current sub-media machine.

[0112] In one embodiment, the effective concurrency determination module 504 is further configured to: determine the adjacent position in the previous non-first position during the event time period when the application sorting is not the first position; obtain the target media machine and the effective concurrency of the target media machine corresponding to the event time period when the application sorting is adjacent; and use the target media machine and the effective concurrency of the target media machine determined when the application sorting is adjacent as the target media machine and the effective concurrency of the target media machine corresponding to the non-first position.

[0113] In one embodiment, the target concurrency determination module 506 is further configured to: determine a second difference between the effective concurrency number and the requested concurrency number when the application is ranked first; use the second difference as the actual remaining target concurrency number of the target media device when the application is ranked first; when the application number is not ranked first, determine the adjacent position that is not ranked first in the event time period; obtain the actual remaining target concurrency number of the target media device when the application is ranked as an adjacent position, and determine a third difference between the target concurrency number corresponding to the adjacent position and the requested concurrency number; use the third difference as the actual remaining target concurrency number of the target media device when the application is not ranked first.

[0114] In one embodiment, the target concurrency determination module 506 includes a time update module 5061, which is used to take the processing time as the new application time when the processing time does not belong to the event time period, and return to the step of determining the event time period to which the application time belongs to continue.

[0115] In one embodiment, the call concurrency determination device 500 further includes a recall module 508, used to obtain the re-application time and re-application concurrency when making a recall with the media machine cluster; determine the reference event time period to which the re-application time belongs; if the reference event time period is the next time period after the event time period, compare the difference between the actual remaining target concurrency of the target media machine and the re-application concurrency; when the re-application concurrency is greater than the actual remaining target concurrency of the target media machine, then the target media machine is not used as the target media machine for the recall.

[0116] Each module in the aforementioned call concurrency determination device can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in or independent of the processor in a computer device, or stored in the memory of a computer device as software, so that the processor can invoke and execute the corresponding operations of each module.

[0117] In one embodiment, a computer device is provided, which may be a terminal, and its internal structure diagram may be as follows: Figure 6As shown, the computer device includes a processor, memory, communication interface, display screen, and input devices connected via a system bus. The processor provides computing and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The communication interface is used for wired or wireless communication with external terminals; wireless communication can be achieved through Wi-Fi, mobile cellular networks, NFC (Near Field Communication), or other technologies. When executed by the processor, the computer program implements a method for determining the concurrent number of call sessions. The display screen can be an LCD screen or an e-ink screen. The input devices can be a touch layer covering the display screen, buttons, a trackball, or a touchpad mounted on the computer device casing, or an external keyboard, touchpad, or mouse.

[0118] Those skilled in the art will understand that Figure 6 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.

[0119] In one embodiment, a computer device is also provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the steps in the above-described method embodiments.

[0120] In one embodiment, a computer-readable storage medium is provided storing a computer program that, when executed by a processor, implements the steps in the above-described method embodiments.

[0121] In one embodiment, a computer program product or computer program is provided, comprising computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the steps described in the method embodiments above.

[0122] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium. When executed, the computer program can include the processes of the embodiments of the above methods. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, etc., and are not limited to these.

[0123] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0124] The above embodiments are merely illustrative of several implementation methods of this application, and their descriptions are relatively specific and detailed. However, they should not be construed as limiting the scope of this application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.

Claims

1. A method for determining the number of concurrent call sessions, characterized in that, The method includes: When making a call with a media machine cluster, the request time and the number of concurrent requests for the call are obtained; the number of concurrent requests represents the number of threads requested from the media machines in the media machine cluster. Determine the event time period to which the application time belongs, and determine the application order of the call within the event time period; Based on the application sorting, the target media machine in the media machine cluster and the effective concurrent number of the target media machine within the event time period are determined, including: when the application sorting is not the first position, determining the adjacent position in the event time period that is not the first position; using the target media machine and the effective concurrent number of the target media machine determined in the adjacent position as the target media machine and the effective concurrent number of the target media machine corresponding to the non-first position; the effective concurrent number is obtained by monitoring the target media machine through events; Perform service processing on the call and determine the processing time for the service processing; When the processing time falls within the event time period, the actual remaining target concurrent number of the target media device is determined based on the number of concurrent applications, the application order, and the effective concurrent number; the target concurrent number is used to determine the call volume that the target media device has not yet carried.

2. The method according to claim 1, characterized in that, The step of determining the target media machine corresponding to the event time period and the effective concurrent number of the target media machine according to the application sorting includes: When the application is ranked first, validity checks are performed on each media device within the event time period to obtain the corresponding check result for each media device. When the detection result indicates that the media device is maintaining communication with the call system, the media device is designated as the target media device; During the event time period, the target media device is monitored for events; the event monitoring is used to trigger the target media device to determine the corresponding target monitoring result. Receive the target monitoring results transmitted by the target media device through the target channel, and determine the effective concurrent number of the target media device based on the target monitoring results.

3. The method according to claim 2, characterized in that, The target media machine includes multiple sub-media machines; the target monitoring result includes the load, real-time concurrency, and resource utilization of each sub-media machine; the effective concurrency includes the effective concurrency of each sub-media machine. The step of determining the effective concurrent number of the target media machine based on the target monitoring results includes: The load of each of the sub-media machines is summed to obtain the total load. For each of the multiple sub-media machines, the load ratio between the current load of the sub-media machine and the total load is determined. Obtain the maximum concurrent users of the current sub-media machine, and determine a first difference between the maximum concurrent users and the real-time concurrent users of the current sub-media machine; Based on the load ratio, the first difference, and the resource utilization rate of the current sub-media machine, the effective concurrency number corresponding to the current sub-media machine is obtained.

4. The method according to claim 1, characterized in that, The step of obtaining the call request time and concurrent request count during a call with the media machine cluster includes: In response to a user's call request, the system receives a large number of phone number information pushed from the upstream system through the caller. The large batch of number information is parsed using a preset algorithm to obtain the application time and number of concurrent applications corresponding to this call.

5. The method according to claim 1, characterized in that, The application sorting includes first-order or non-first-order; determining the actual remaining target concurrency of the target media device based on the application concurrency, the application sorting, and the effective concurrency includes: When the application is ranked first, a second difference is determined between the effective concurrency and the application concurrency. The second difference is taken as the actual remaining target concurrency of the target media machine when the application is ranked first; When the application is not in the first position, determine the adjacent position of the previous non-first position in the event time period; When the application is sorted into adjacent positions, the actual remaining target concurrency of the target media device is obtained, and a third difference is determined between the target concurrency corresponding to the adjacent position and the application concurrency. The third difference is taken as the actual remaining target concurrent number of the target media machine when the application is not sorted first.

6. The method according to claim 1, characterized in that, The method further includes: When the processing time does not belong to the event time period, the processing time is taken as the new application time, and the process returns to the step of determining the event time period to which the application time belongs.

7. The method according to claim 1, characterized in that, After determining the actual remaining target concurrent connection count of the target media device based on the number of concurrent requests, the request order, and the effective concurrent connection count, the method further includes: When making a second call with the media machine cluster, obtain the second call request time and the number of second concurrent requests; Determine the reference event time period to which the re-application time belongs. If the reference event time period is the next time period after the event time period, compare the difference between the actual remaining target concurrent number of the target media machine and the re-application concurrent number. If the number of concurrent requests exceeds the actual remaining target concurrent number of the target media device, then the target media device will not be used as the target media device for subsequent calls.

8. A device for determining the concurrent call count, characterized in that, The device includes: The call module is used to obtain the request time and the number of concurrent requests when making a call with a media machine cluster; the number of concurrent requests represents the number of threads requested from media machines in the media machine cluster; determine the event time period to which the request time belongs, and determine the request order of the call within the event time period; An effective concurrency determination module is used to determine, based on the application sorting, the target media machines in the media machine cluster and the effective concurrency count of the target media machines within the event time period, including: when the application sorting is not the first position, determining the adjacent position in the event time period that is not the first position; using the target media machines and the effective concurrency count of the target media machines determined in the adjacent position as the target media machines and the effective concurrency count of the target media machines corresponding to the non-first position; the effective concurrency count is obtained by monitoring the target media machines through event monitoring; performing service processing on the call and determining the processing time of the service processing; The target concurrency determination module is used to determine the actual remaining target concurrency of the target media device based on the application concurrency number, the application order, and the effective concurrency number when the processing time belongs to the event time period; the target concurrency number is used to determine the call calls that the target media device has not yet carried.

9. A computer device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 7.

10. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 7.