Resource scheduling method, related apparatus, electronic device, medium, and program product

By obtaining the candidate resource combination of target tasks and searching in the multi-level resource pool, the target resource pool is determined, and the problem of insufficient resource scheduling flexibility and adaptability in the existing technology is solved, and efficient and flexible resource scheduling is achieved.

WO2025060673A9PCT designated stage expired Publication Date: 2025-06-05TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/107471
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-18
Filing Date
2024-07-25
Publication Date
2025-06-05

AI Technical Summary

Technical Problem

When facing changing application scenarios, existing resource scheduling methods have poor flexibility and adaptability, making it difficult to effectively schedule multiple alternative resource pools.

Method used

By responding to the resource scheduling request of the target task, multiple candidate resource combinations are obtained, and the seed resource pool corresponding to the candidate resource combination is determined based on the preset level of the multi-level resource pool, and finally the target resource pool is determined in the multiple seed resource pools.

Benefits of technology

It improves the flexibility and efficiency of resource scheduling, can be applied to relatively variable application scenarios, and quickly responds to resource scheduling requests.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024107471_05062025_PF_FP_ABST
    Figure CN2024107471_05062025_PF_FP_ABST
Patent Text Reader

Abstract

Provided in the present disclosure are a resource scheduling method, a related apparatus, an electronic device, and a medium. The resource scheduling method comprises: in response to a resource scheduling request of a target task, obtaining a plurality of candidate resource combinations corresponding to the target task, each one of the candidate resource combinations comprising at least one target resource required by the target task as well as the number of target resources of the target resources; for each one of the candidate resource combinations, on the basis of the at least one target resource and the number of target resources, searching a multi-level resource pool according to a sequence from a lower level to a higher level to determine a seed resource pool corresponding to the candidate resource combination; and on the basis of the levels of the seed resource pools corresponding to the candidate resource combinations, determining, among a plurality of the seed resource pools, a target resource pool for meeting the resource scheduling request. The present disclosure is applied to the technical field of networks. According to embodiments of the present disclosure, resource scheduling efficiency and flexibility of resource scheduling may be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Resource scheduling method, related device, electronic device, medium and program product

[0001] This application claims priority to the Chinese patent application filed with the China Patent Office on September 18, 2023, with application number 2023112004036 and application name “Resource Scheduling Method, Related Devices, Electronic Equipment and Medium”, the entire contents of which are incorporated by reference into this application. Technical Field

[0002] The present disclosure relates to the field of network technology, and in particular to resource scheduling. Background Art

[0003] In an era of the interconnectedness of everything and the continuous advancement of network technology, resource scheduling is a frequent issue. This involves selecting and allocating resources from multiple resource pools of varying types and reserve conditions. This leads to multiple resource allocation options, from which the most suitable solution is selected for resource scheduling.

[0004] Currently, resource scheduling methods that configure resource scheduling schemes based on multiple alternative resource pools mainly include forming matching resource allocation schemes based on preset event templates.

[0005] In the solutions of the related art, since the preset event templates cannot cope with more varied application scenarios, the flexibility and adaptability of this method are relatively poor.

[0006] Summary of the Invention

[0007] The embodiments of the present disclosure provide a resource scheduling method, related devices, electronic devices, media, and program products, which can improve the flexibility and efficiency of resource scheduling.

[0008] According to one aspect of the present disclosure, a resource scheduling method is provided, comprising:

[0009] In response to a resource scheduling request of a target task, obtaining a plurality of candidate resource combinations corresponding to the target task, each of the candidate resource combinations including at least one target resource required by the target task and a target resource quantity of the target resource;

[0010] For each candidate resource combination, based on the at least one target resource and the target number of resources, searching each resource pool in the multi-level resource pool in order from low to high based on preset levels of the multi-level resource pool to determine a seed resource pool corresponding to the candidate resource combination;

[0011] According to the levels of the seed resource pools corresponding to the respective candidate resource combinations, a target resource pool for satisfying the resource scheduling request is determined from the plurality of seed resource pools.

[0012] According to one aspect of the present disclosure, a resource scheduling device is provided, comprising:

[0013] A first acquisition unit is configured to acquire, in response to a resource scheduling request of a target task, a plurality of candidate resource combinations corresponding to the target task, each of the candidate resource combinations comprising at least one target resource required by the target task and a target resource quantity of the target resource;

[0014] a resource search unit, configured to search, for each candidate resource combination, resource pools in the multi-level resource pool in order from low to high based on the at least one target resource and the number of target resources and based on preset levels of the multi-level resource pool, to determine a seed resource pool corresponding to the candidate resource combination;

[0015] The first determining unit is configured to determine, from a plurality of the seed resource pools, a target resource pool for satisfying the resource scheduling request according to levels of the seed resource pools corresponding to the respective candidate resource combinations.

[0016] According to one aspect of the present disclosure, an electronic device is provided, including a memory and a processor, wherein the memory stores a computer program, and the processor implements the resource scheduling method described above when executing the computer program.

[0017] According to one aspect of the present disclosure, a computer-readable storage medium is provided, wherein the storage medium stores a computer program, and when the computer program is executed by a processor, the resource scheduling method described above is implemented.

[0018] According to one aspect of the present disclosure, a computer program product is provided. The computer program product includes a computer program. The computer program is read and executed by a processor of a computer device, so that the computer device executes the resource scheduling method described above.

[0019] In an embodiment of the present disclosure, a resource scheduling method requires, in response to a resource scheduling request from a target task, obtaining multiple candidate resource combinations corresponding to the target task; each candidate resource combination includes at least one target resource required by the target task and a target resource number for the target resource. Then, for each candidate resource combination, based on the at least one target resource and the target resource number, a multi-level resource pool is searched in ascending order to determine a seed resource pool corresponding to the candidate resource combination. Therefore, a series of corresponding seed resource pools can be determined for each candidate resource combination corresponding to the target task. Furthermore, based on the level of the seed resource pool corresponding to each candidate resource combination, a target resource pool is determined from the multiple seed resource pools to satisfy the resource scheduling request. It should be noted that because the resource scheduling method of the present disclosure determines the target resource pool that satisfies the resource scheduling request based on the level of the seed resource pool corresponding to each candidate resource combination, it can respond to the resource scheduling request of the target task more quickly, thereby improving resource scheduling efficiency. The above scheme does not restrict the specific tasks and candidate resource combinations, and is therefore applicable to a wide variety of application scenarios, allowing for the rational determination of the target resource pool that satisfies the resource scheduling request, thereby providing greater flexibility in resource scheduling.

[0020] Other features and advantages of the present disclosure will be described in the following description, and in part will become apparent from the description, or will be understood by practicing the present disclosure. The purposes and other advantages of the present disclosure can be realized and obtained by the structures particularly pointed out in the description, claims and drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0021] FIG1 is a system architecture diagram of a resource scheduling method according to an embodiment of the present disclosure;

[0022] 2A-2C are diagrams illustrating examples of front-end interfaces corresponding to when the resource scheduling method according to an embodiment of the present disclosure is applied to scheduling virtual resources;

[0023] 2D-2F are diagrams illustrating examples of front-end interfaces corresponding to when the resource scheduling method according to an embodiment of the present disclosure is applied to scheduling entity resources;

[0024] FIG3 is an overall flow chart of a resource scheduling method according to an embodiment of the present disclosure;

[0025] FIG4A is an example diagram of a resource scheduling method for obtaining a candidate resource combination according to an embodiment of the present disclosure;

[0026] FIG4B is an example diagram of determining a seed resource pool when scheduling virtual resources according to an embodiment of the present disclosure;

[0027] FIG4C is an example diagram of determining a seed resource pool when scheduling physical resources according to an embodiment of the present disclosure;

[0028] FIG4D is an example diagram of a target resource pool determined according to an embodiment of the present disclosure;

[0029] FIG5 is an optional detailed flowchart of step 320 in FIG3 ;

[0030] FIG6 is an example diagram of determining a seed resource pool according to a single general type according to an embodiment of the present disclosure;

[0031] FIG7 is an optional detailed flowchart of step 520 in FIG5 ;

[0032] FIG8 is an optional detailed flowchart of step 720 in FIG7;

[0033] FIG9 is an example diagram of searching a multi-level resource pool according to an embodiment of the present disclosure;

[0034] FIG10 is an optional detailed flowchart of step 820 in FIG8 ;

[0035] 11A to 11D show exemplary diagrams of determining a scheduling return amount for a resource pool to be investigated according to an embodiment of the present disclosure;

[0036] FIG12 is an optional detailed flowchart of step 1060 in FIG10 ;

[0037] FIG13 shows an example diagram of determining a scheduling return amount according to an embodiment of the present disclosure;

[0038] FIG14 is an optional detailed flowchart of step 320 in FIG3 ;

[0039] 15A and 15B show exemplary diagrams of determining a seed resource pool based on a deficit amount according to an embodiment of the present disclosure;

[0040] FIG16 is an optional detailed flowchart of executing the second process after step 1420 in FIG14 according to an embodiment of the present disclosure;

[0041] FIG17 is an optional detailed flowchart of step 330 in FIG3 ;

[0042] FIG18 is an optional detailed flowchart of step 1720 in FIG17 ;

[0043] FIG19 shows an example diagram of determining a target resource pool according to an embodiment of the present disclosure;

[0044] FIG20 is an optional detailed flowchart of step 330 in FIG3 ;

[0045] FIG21 shows an example diagram of determining a target resource pool according to an embodiment of the present disclosure;

[0046] FIG22 is another optional detailed flowchart of step 300 in FIG3 ;

[0047] FIG23 is an optional detailed flowchart of step 2200 in FIG22;

[0048] FIG24 is an optional specific flow chart of replenishing resources to a multi-level resource pool according to an embodiment of the present disclosure;

[0049] FIG25 is an optional detailed flowchart of step 2440 in FIG24 ;

[0050] FIG26 is an example diagram of replenishing resources to a multi-level resource pool according to an embodiment of the present disclosure;

[0051] FIG27 is an optional detailed flowchart of selecting a target computing node from a plurality of candidate computing nodes;

[0052] FIG28 is another optional detailed flowchart of step 300 in FIG3 ;

[0053] FIG29 is an optional detailed flowchart of step 2840 in FIG28 ;

[0054] FIG30 shows an example diagram of a system architecture for applying the resource scheduling method according to an embodiment of the present disclosure;

[0055] FIG31 is an example diagram of asynchronous operation of the resource scheduling control layer in the resource scheduling system architecture according to an embodiment of the present disclosure;

[0056] FIG32 is a specific example diagram of the resource scheduling method according to an embodiment of the present disclosure;

[0057] FIG33 is a block diagram of a resource scheduling apparatus according to an embodiment of the present disclosure;

[0058] FIG34 shows a terminal structure diagram for implementing the resource scheduling method shown in FIG3 according to an embodiment of the present disclosure;

[0059] FIG35 shows a server structure diagram for implementing the resource scheduling method shown in FIG3 according to an embodiment of the present disclosure. DETAILED DESCRIPTION

[0060] In order to make the purpose, technical solutions and advantages of the present disclosure more clearly understood, the present disclosure is further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present disclosure and are not intended to limit the present disclosure.

[0061] Before further explaining the embodiments of the present disclosure in detail, the nouns and terms involved in the embodiments of the present disclosure are explained. The nouns and terms involved in the embodiments of the present disclosure are subject to the following interpretations:

[0062] Target task: refers to the task that needs to be executed as a target in various business scenarios. In order for the target task to be executed normally, the target task has a corresponding resource scheduling request, which is used to schedule the resources required for the normal execution of the target task.

[0063] Candidate resource combination: refers to the target resources and target resource quantities required to perform the target task.

[0064] Resource pool: A resource pool is a collection of resources available to an organization or system. These resources can be physical assets, computing power, or a collection of hardware and software resources available to programs in a computer system, or other types of resources.

[0065] Related technologies address resource scheduling needs by configuring resource scheduling schemes based on multiple alternative resource pools. These include methods that generate matching resource allocation schemes based on pre-set event templates and those that solve resource allocation schemes using genetic algorithms. The former approach suffers from poor flexibility and adaptability, as pre-set event templates cannot accommodate diverse application scenarios. The latter approach relies on a large number of training samples, resulting in high time costs and low resource allocation efficiency.

[0066] To this end, the present disclosure provides a resource scheduling method that can be applied to more diverse application scenarios, reasonably determine the target resource pool for satisfying resource scheduling requests, and has high flexibility in resource scheduling.

[0067] System architecture and scenario description of the application of the embodiments of the present disclosure

[0068] 1 is a system architecture diagram of a resource scheduling method according to an embodiment of the present disclosure, which includes a terminal 140, the Internet 130, a gateway 120, a resource scheduling server 110, and the like.

[0069] Terminal 140 is a device used to display input boxes, input information, and candidate words. It can take various forms, including desktop computers, laptops, tablet computers, PDAs (personal digital assistants), mobile phones, and in-vehicle terminals. Furthermore, it can be a single device or a combination of multiple devices. For example, multiple devices connected via a local area network and sharing a common display device can collectively constitute terminal 140. Terminal 140 can also communicate with the internet 130 via wired or wireless means to exchange data.

[0070] The resource scheduling server 110 refers to a computer system that can implement resource scheduling according to target tasks. Compared with ordinary terminals 140, the resource scheduling server 110 has very high requirements in terms of stability, security, performance, etc. The resource scheduling server 110 can be a high-performance computer in a network platform, a cluster of multiple high-performance computers, a part of a high-performance computer (such as a virtual machine), a combination of parts of multiple high-performance computers (such as virtual machines), etc. It should be noted that the resource scheduling server 110 includes a target task acquisition module, a resource query module and a resource configuration module. Among them, the target task acquisition module is used to obtain the target task that needs to be executed in the current business scenario and parse the resource scheduling request corresponding to the target task; the resource query module is used to query the target resource pool that matches it from multiple resource pools according to the resource scheduling request; the resource configuration module is used to, after determining the target resource pool that matches the resource scheduling request, configure the target resources in the target resource pool to the target task that needs to be executed to complete resource scheduling.

[0071] Gateway 120, also known as a gateway or protocol converter, implements network interconnection at the transport layer and is a computer system or device that acts as a converter. It acts as a translator between two systems using different communication protocols, data formats, languages, or even completely different architectures. Gateways can also provide filtering and security functions.

[0072] Messages sent by terminal 140 to resource scheduling server 110 are sent to the corresponding resource scheduling server 110 via gateway 120. Messages sent by resource scheduling server 110 to terminal 140 are also sent to the corresponding terminal 140 via gateway 120. It should be understood that terminal 140 can be used to deliver target tasks to resource scheduling servers via Internet 130 and gateway 120.

[0073] It should be emphasized that the embodiments of the present disclosure are applicable to multiple types of business scenarios. In different business scenarios, the meanings of target tasks, target resources, candidate resource combinations, and resource pools vary. The following selects two types of business scenarios for illustration:

[0074] In one type of embodiment, when the target task involves scheduling virtual resources, for example, to build an application, code blocks need to be called from different data storage modules. In this business scenario, the target task involved may be "building the application," the target resource involved may be "code block," the resource pool involved may be "data storage module storing code blocks," and the candidate resource combinations may be "candidate code block combination A, candidate code block combination B, and candidate code block combination C required to build the application."

[0075] Referring to Figure 2A, the figure shows the relevant record information of each code block scheduled based on the application build when the target task involves the scheduling of virtual resources. In order to query the relevant record information of each code block scheduled based on the application build, it is necessary to enter the query conditions; in the query conditions, the "Task Type" field is used to fill in the type of target task to be queried, which is "Application Build" in this embodiment; the "Specify Resource Pool" field is used to fill in the resource pool that needs to be specified for resource scheduling, which is "Data Storage Module A, Data Storage Module B, Data Storage Module C" in this embodiment; the "Task Number" field is used to fill in the number of the target task to be queried, which is "001#02" in this embodiment; the "Execution Status" field is used to fill in the execution status corresponding to the target task to be queried, which is the target task in the "Completed" state to be queried in this embodiment; "Whether to include" The "Subtask" field is used to fill in whether the subtask corresponding to the main task is displayed in the target task to be queried. In this embodiment, "Yes" is filled in, which means that the relevant record information corresponding to the subtask needs to be displayed; the "Candidate Resource Combination" field is used to fill in the candidate resource combination that needs to be used as the resource scheduling benchmark. In this embodiment, it is "Candidate Code Block Combination A{[Code Block A,1]; [Code Block C,3]; [Code Block F,4]}, Candidate Code Block Combination B{[Code Block B,2]; [Code Block D,2]; [Code Block F,4]}, Candidate Code Block Combination C{[Code Block A,5]; [Code Block E,3]; [Code Block F,2]}"; The "Resource Scheduling Description" field is used to fill in the explanatory content related to resource scheduling. It should be understood that the field types in the query conditions and the types of content that can be filled in are diverse, and no examples are given here one by one.

[0076] Referring to Figure 2B, the figure shows the request data for executing a code block type resource scheduling for building an application when the target task involves the scheduling of virtual resources. In the request data, for this code block type resource scheduling, the information required for each associated resource scheduling request is recorded, such as the task address information corresponding to the target task, the number of resources required for code block type resource scheduling, the resource scheduling type and resource type information of this scheduling, and other related data when resource scheduling is performed based on each candidate code block combination according to the resource scheduling request. Specifically, when the target resource is a code block, the resource scheduling type can be a type that represents the code block scheduling, such as "whole code block" or "code block fragment statement", and the resource type information can be a description of the code block function, a description of the code block adaptation information, etc.

[0077] It should be understood that the embodiment shown in FIG. 2B is for illustrative purposes only, and in actual applications, the content of the request data may include, but is not limited to, the specific embodiments listed above.

[0078] Referring to Figure 2C , the figure shows scheduling data for a code block resource scheduling operation performed to build an application when the target task involves scheduling virtual resources. The scheduling data includes detailed information recorded after each associated resource scheduling operation is actually executed, such as the task address information corresponding to the target task, the resource requirements for the code block resource scheduling operation, and the resource scheduling type and resource type information associated with the resource scheduling operation for each candidate code block combination.

[0079] It should be understood that the embodiment shown in FIG. 2C is for illustrative purposes only, and the content of the scheduling data in actual applications may include, but is not limited to, the specific embodiments listed above.

[0080] In the second type of embodiment, when the target task involves the scheduling of physical resources, for example, to meet a material demand, materials are allocated from storage warehouses in various locations. In this business scenario, the target task involved can be "meeting material demand," the target resource involved can be "materials," the resource pool involved can be "storage warehouses with materials," and the candidate resource combination can be "materials A, B, and C required to fill the material gap."

[0081] Referring to Figure 2D, the figure shows the relevant record information of the stored materials in each storage warehouse that is scheduled based on filling a certain material gap when the target task involves the scheduling of physical resources. In order to query the relevant record information of each material that is scheduled based on filling the material gap, it is necessary to enter the query conditions; in the query conditions, the "Task Type" field is used to fill in the type of target task that needs to be queried, which is "Filling Material Gaps" in this embodiment; the "Specified Resource Pool" field is used to fill in the resource pool that needs to be designated for resource scheduling, which is "Storage Warehouse A, Storage Warehouse B, Storage Warehouse C" in this embodiment; the "Task Number" field is used to fill in the number of the target task that needs to be queried, which is "002#03" in this embodiment; the "Execution Status" field is used to fill in the execution status corresponding to the target task that needs to be queried, which is the target task in the "Completed" state that needs to be queried in this embodiment; "Whether to include subtasks" The " field is used to fill in whether the subtasks corresponding to the main task are displayed in the target task to be queried. In this embodiment, "Yes" is filled in, which means that the relevant record information corresponding to the subtask needs to be displayed; the "Candidate Resource Combination" field is used to fill in the candidate resource combination that needs to be used as the resource scheduling benchmark. In this embodiment, it is "Candidate Material Combination A{[Material A,33]; [Material C,45]; [Material F,48]}, Candidate Material Combination B{[Material A,47]; [Material C,56]; [Material F,78]}, Candidate Material Combination C{[Material A,34]; [Material C,45]; [Material F,69]}"; The "Resource Scheduling Description" field is used to fill in the explanatory content related to resource scheduling. It should be understood that the field types in the query conditions and the types of content that can be filled in are diverse, and no examples are given here one by one.

[0082] Referring to Figure 2E, the figure shows the request data for executing a material type resource scheduling for building an application when the target task involves the scheduling of physical resources. In the request data, for this material type resource scheduling, the information required for each associated resource scheduling request is recorded, such as the task address information corresponding to the target task, the resource requirement quantity for material type resource scheduling, the resource scheduling type and resource type information for this scheduling, and other related data when resource scheduling is performed based on each candidate material combination according to the resource scheduling request. Specifically, when the target resource is a material, the resource scheduling type can be a type that represents material scheduling, such as "whole box material", "loose material", "material component", etc., and the resource type information can be a description of the material function, a description of the material adaptation information, etc.

[0083] It should be understood that the embodiment shown in FIG. 2E is for illustrative purposes only, and in actual applications, the content of the request data may include, but is not limited to, the specific embodiments listed above.

[0084] Referring to Figure 2F , the figure shows scheduling data for a material-type resource scheduling executed to build an application, when the target task involves scheduling physical resources. This scheduling data includes detailed information recorded after each associated resource scheduling execution, such as the target task's corresponding task address, the required resource quantity for the material-type resource scheduling, and the resource scheduling type and resource type information associated with the scheduling during the actual resource scheduling execution for each candidate material combination.

[0085] It should be understood that the embodiment shown in FIG. 2F is for illustrative purposes only, and the content of the scheduling data in actual applications may include, but is not limited to, the specific embodiments listed above.

[0086] It should be noted that the embodiments of the present disclosure can be applied to a variety of business scenarios, including but not limited to the specific embodiments listed above.

[0087] General description of the embodiments of the present disclosure

[0088] It should be emphasized that the embodiments of the present disclosure are applicable to multiple types of business scenarios. In different business scenarios, the meanings of target tasks, target resources, candidate resource combinations, and resource pools vary. When the target task involves the scheduling of virtual resources. For example, to build an application, code blocks need to be called from different data storage modules. In this type of business scenario, the target task involved can be "building the application," the target resource involved can be "code blocks," the resource pool involved can be "data storage modules storing code blocks," and the candidate resource combinations can be "candidate code block combination A, candidate code block combination B, and candidate code block combination C required to build the application." When the target task involves the scheduling of physical resources. For example, to meet a material demand, materials need to be allocated from storage warehouses in various locations. In this type of business scenario, the target task involved can be "meeting material demand," the target resource involved can be "materials," the resource pool involved can be "storage warehouses storing materials," and the candidate resource combinations can be "materials A, B, and C required to fill material gaps." It should be understood that the embodiments of the present disclosure can be applied to a variety of business scenarios, including, but not limited to, the specific embodiments listed above.

[0089] Detailed description of step 300

[0090] 3 , a resource scheduling method according to an embodiment of the present disclosure may be executed by the aforementioned resource scheduling server 110 , including but not limited to the following steps 310 to 330 .

[0091] Step 310 , in response to a resource scheduling request of a target task, obtaining a plurality of candidate resource combinations corresponding to the target task, each candidate resource combination including at least one target resource required by the target task and a target resource quantity of the target resource;

[0092] Step 320: for each candidate resource combination, based on at least one target resource and the number of target resources, searching each resource pool in the multi-level resource pool in order from low to high based on the preset levels of the multi-level resource pool to determine a seed resource pool corresponding to the candidate resource combination;

[0093] Step 330 : Determine a target resource pool for satisfying the resource scheduling request from among multiple seed resource pools according to the levels of the seed resource pools corresponding to each candidate resource combination.

[0094] Steps 310 to 330 are described in detail below.

[0095] In step 310, in response to the resource scheduling request of the target task, multiple candidate resource combinations corresponding to the target task are obtained, each candidate resource combination including at least one target resource required by the target task and the target resource number of the target resource. It should be emphasized that the target task refers to the task that needs to be executed as a target in various business scenarios. In order for the target task to be executed normally, the target task has a corresponding resource scheduling request, and the resource scheduling request is used to schedule the resources required for the normal execution of the target task. Therefore, in order to schedule the corresponding resources for the target task, it is necessary to obtain multiple candidate resource combinations corresponding to the target task in response to the resource scheduling request of the target task. Each candidate resource combination includes at least one target resource required by the target task and the target resource number of the target resource. The target resource number is used to identify the resource number of the corresponding target resource. For example, there are three target resources, the target resource number of target resource 1 is 10, the target resource number of target resource 2 is 15, and the target resource number of target resource 3 is 30.

[0096] 4A , which shows an example diagram of a resource scheduling request, a variety of candidate resource combinations may be obtained by responding to the resource scheduling request of the target task.

[0097] "Candidate resource combination A" contains {[target resource A, 3], [target resource C, 4], [target resource D, 5]} required by the target task. The number of target resources corresponding to target resource A is 3, the number of target resources corresponding to target resource C is 4, and the number of target resources corresponding to target resource D is 5;

[0098] "Candidate resource combination B" contains {[target resource B, 2], [target resource D, 5], [target resource E, 8]} required by the target task. The number of target resources corresponding to target resource B is 2, the number of target resources corresponding to target resource D is 5, and the number of target resources corresponding to target resource E is 8;

[0099] "Candidate resource combination C" contains {[target resource A, 30], [target resource F, 40]} required by the target task. The number of target resources corresponding to target resource A is 30, and the number of target resources corresponding to target resource F is 40.

[0100] "Candidate resource combination D" contains {[target resource A, 5], [target resource C, 6], [target resource D, 7], [target resource F, 9]} required for the target task. The number of target resources corresponding to target resource A is 5, the number of target resources corresponding to target resource C is 6, the number of target resources corresponding to target resource D is 7, and the number of target resources corresponding to target resource F is 9;

[0101] "Candidate resource combination E" contains {[target resource A, 36], [target resource C, 88], [target resource D, 90]} required by the target task. The number of target resources corresponding to target resource A is 36, the number of target resources corresponding to target resource C is 88, and the number of target resources corresponding to target resource D is 90.

[0102] "Candidate resource combination F" contains {[target resource B, 166], [target resource D, 64], [target resource G, 83]} required for the target task. The number of target resources corresponding to target resource B is 166, the number of target resources corresponding to target resource D is 64, and the number of target resources corresponding to target resource G is 83.

[0103] It should be understood that FIG4A is used to schematically illustrate the relationship between a resource scheduling request and a candidate resource combination. In actual application business scenarios, the resource scheduling request and the candidate resource combination may include, but are not limited to, the specific embodiments listed above.

[0104] In step 320, for each candidate resource combination, based on at least one target resource and the target number of resources, the resource pools in the multi-level resource pool are searched in order from low to high according to the preset levels of the multi-level resource pool to determine the seed resource pool corresponding to the candidate resource combination. It should be emphasized that a resource pool refers to a collection of resources available in an organization or system. These resources can be materials, computer computing power, or a collection of hardware and software resources or other types of resources available to programs in a computer system. A multi-level resource pool refers to resource pools of multiple different levels. For example, a multi-level resource pool includes three resource pools, and the preset levels of these three resource pools are different, or at least some of their levels are different.

[0105] For each candidate resource combination, a multi-level resource pool is searched in ascending order based on at least one target resource and the target number of resources to determine the seed resource pool corresponding to the candidate resource combination. The so-called seed resource pool is the resource pool that provides the resources that need to be scheduled for the candidate resource combination.

[0106] It should be noted that resource pools can be ranked based on a variety of criteria. From low to high, resource pools are ranked according to the increasing overhead associated with resource scheduling. For example, when the target task involves scheduling virtual resources, the ranking can be based on the read and write speed of each data storage module. In this way, searching multiple resource pools from low to high is equivalent to searching multiple data storage modules from fastest to slowest read and write speeds, thereby identifying a seed resource pool that provides the resources required for scheduling for the candidate resource combination, thereby improving resource scheduling efficiency. For example, when the target task involves scheduling physical resources, the ranking of storage bins can be based on the distance between each bin and a material shortage. In this way, searching multiple resource pools from low to high is equivalent to searching multiple bins from closest to farthest from a material shortage, thereby identifying a seed resource pool that provides the resources required for scheduling for the candidate resource combination, thereby improving resource scheduling efficiency. It should be understood that the ranking criteria for resource pools may include, but are not limited to, the examples above.

[0107] Referring to FIG4B , in some embodiments, when the target task involves scheduling virtual resources, for example, to build an application, code blocks need to be called from different data storage modules. In this business scenario, the resource pool is the "data storage module storing the code blocks," which may specifically include data storage module A, data storage module B, and data storage module C. The data storage modules are divided into different levels based on their read and write speeds: data storage module A with the fastest read and write speed is classified as low-level, data storage module B with medium read and write speed is classified as medium-level, and data storage module C with the slowest read and write speed is classified as high-level.

[0108] In this way, for each candidate resource combination, the multi-level resource pools can be searched in order from low to high based on at least one target resource and the number of target resources to determine the seed resource pool corresponding to the candidate resource combination. Specifically, it can be:

[0109] For candidate code block combination A, based on the three types of code blocks and the number of code blocks in each type, namely {[code block A, 1]; [code block C, 3]; [code block F, 4]}, the low-level data storage module A is first searched to obtain one code block A and two code blocks C. The mid-level data storage module B is then searched to obtain one code block C and one code block F. Finally, the high-level data storage module C is further searched to obtain three code blocks F. It should be understood that the order of data storage modules from low to high corresponds to the order of their read and write speeds from fast to slow. Therefore, prioritizing the scheduling of required code blocks from data storage modules with fast read and write speeds can improve resource scheduling efficiency.

[0110] It should be noted that code block A is scheduled from data storage module A, code block C is scheduled from data storage module B, and code block F is scheduled from data storage module C. Therefore, data storage modules A, B, and C are all determined to be the seed resource pool corresponding to candidate code block combination A. It should be understood that a seed resource pool is a resource pool used to provide resources that need to be scheduled for a candidate resource combination. If there is another data storage module D, but data storage module D does not provide resources to candidate code block combination A, then data storage module D cannot be determined as the seed resource pool corresponding to candidate code block combination A.

[0111] Referring to FIG4C , in some embodiments, when the target task involves the scheduling of physical resources, for example, to meet a material demand, materials are allocated from storage warehouses in various locations. In this business scenario, the resource pool is the "storage warehouse with materials," which can specifically include storage warehouse A, storage warehouse B, and storage warehouse C. Each storage warehouse is classified based on its distance from the material gap. Storage warehouse A, which is closest to the material gap, is classified as low-level, storage warehouse B, which is at a medium distance from the material gap, is classified as medium-level, and storage warehouse C, which is at the farthest distance from the material gap, is classified as high-level.

[0112] In this way, for each candidate resource combination, the multi-level resource pools can be searched in order from low to high based on at least one target resource and the number of target resources to determine the seed resource pool corresponding to the candidate resource combination. Specifically, it can be:

[0113] For candidate material combination A, based on the three material categories and the quantity of each material in candidate material combination A, namely {[Material A, 33]; [Material C, 45]; [Material F, 48]}, we first search the low-level storage bin A to obtain 15 materials A and 20 materials C. We then search the mid-level storage bin B to obtain 18 materials A, 10 materials C, and 20 materials F. We further search the high-level storage bin C to obtain 15 materials C and 28 materials F. It should be understood that the order of storage bins from low to high corresponds to the order of distance from the storage bin to the material shortage, from close to far. Therefore, prioritizing the dispatch of required materials from the closer storage bins can improve resource scheduling efficiency.

[0114] It should be noted that material A is dispatched from storage bin A, material C is dispatched from storage bin B, and material F is dispatched from storage bin C. Therefore, storage bins A, B, and C are all determined to be the seed resource pool corresponding to candidate material combination A. It should be understood that the seed resource pool is a resource pool used to provide the resources that need to be dispatched for the candidate resource combination. If there is another storage bin D, but storage bin D does not provide resources to candidate material combination A, then storage bin D cannot be determined as the seed resource pool corresponding to candidate material combination A.

[0115] In step 330, based on the levels of the seed resource pools corresponding to each candidate resource combination, a target resource pool for satisfying the resource scheduling request is determined from among the multiple seed resource pools. It should be noted that after determining the multiple seed resource pools, step 330 is further performed to determine the target resource pool for satisfying the resource scheduling request from among the multiple seed resource pools. It should be pointed out that resource scheduling based on any one of the multiple candidate resource combinations can satisfy the resource scheduling request of the target task. However, there are differences in the scheduling effects of satisfying the resource scheduling request. Therefore, based on the levels of the seed resource pools corresponding to each candidate resource combination, a target resource pool for satisfying the resource scheduling request needs to be determined from among the multiple seed resource pools.

[0116] In some more specific embodiments, when the target task involves the scheduling of virtual resources. For example: to build an application, it is necessary to call code blocks from different data storage modules. The data storage module is a resource pool, and its level is divided based on the read and write speed of each data storage module. The data storage module A with the fastest read and write speed is low-level, the data storage module B with medium read and write speed is medium-level, and the data storage module C with the slowest read and write speed is high-level. In such business scenarios, if resource scheduling is performed based on the candidate code block combination A, the code block will be obtained from the data storage module A; if resource scheduling is performed based on the candidate code block combination B, the code block will be obtained from the data storage module B and the data storage module C. Given that the level of data storage module A is lower than that of data storage module B and data storage module C, and the read and write speed is faster, determining data storage module A as the target resource pool for satisfying resource scheduling requests can improve the efficiency of resource scheduling.

[0117] In other more specific embodiments, when the target task involves the scheduling of physical resources. For example: to meet a material demand, materials are allocated from storage warehouses in various places. The storage warehouse is a resource pool, and its level is divided based on the distance between each storage warehouse and the material gap. Storage warehouse A, which is closest to the material gap, is low-level, storage warehouse B, which is medium-distance to the material gap, is medium-level, and storage warehouse C, which is farthest from the material gap, is high-level. In such business scenarios, if resource scheduling is based on candidate material combination A, materials will be obtained from storage warehouse A; if resource scheduling is based on candidate material combination B, materials will be obtained from storage warehouse B and storage warehouse C. Given that the level of storage warehouse A is lower than that of storage warehouse B and storage warehouse C, and the distance between it and the material gap is closer, storage warehouse A is determined as the target resource pool for meeting resource scheduling requests, which can improve the efficiency of resource scheduling.

[0118] Referring to the embodiment shown in Figure 4D, in response to the resource scheduling request of the target task, multiple candidate resource combinations corresponding to the target task are obtained, specifically including candidate resource combination A, candidate resource combination B, candidate resource combination C, candidate resource combination D, candidate resource combination E, and candidate resource combination F.

[0119] Furthermore, for each candidate resource combination, based on at least one target resource and the number of target resources, a multi-level resource pool is searched in order from low to high to determine the seed resource pool corresponding to the candidate resource combination. It should be understood that the levels of resource pool level A, resource pool level B, resource pool level C, and resource pool level D are successively higher, wherein the resource pools of resource pool level A include resource pool A1, resource pool A2, resource pool A3, etc., the resource pools of resource pool level B include resource pool B1, resource pool B2, resource pool B3, etc., the resource pools of resource pool level C include resource pool C1, resource pool C2, resource pool C3, etc., and the resource pools of resource pool level D include resource pool D1, resource pool D2, resource pool D3, etc. It should be understood that each candidate resource combination can determine multiple corresponding seed resource pools.

[0120] It should be noted that the set of multiple seed resource pools corresponding to a certain candidate resource combination can be called a seed resource pool set. Specifically, for each candidate resource combination, based on at least one target resource and the number of target resources, the multi-level resource pools are searched in order from low to high to determine seed resource pool set A corresponding to candidate resource combination A, seed resource pool set B corresponding to candidate resource combination B, seed resource pool set C corresponding to candidate resource combination C, seed resource pool set D corresponding to candidate resource combination D, seed resource pool set E corresponding to candidate resource combination E, and seed resource pool set F corresponding to candidate resource combination F.

[0121] Furthermore, based on the levels of the seed resource pools corresponding to each candidate resource combination, a target resource pool is determined from the multiple seed resource pools to satisfy the resource scheduling request. In the embodiment of the present disclosure shown in FIG4D , the seed resource pool corresponding to candidate resource combination B is determined as the target resource pool. Therefore, the three seed resource pools specifically included in seed resource pool set B, namely resource pool A1, resource pool B2, and resource pool C3, are also determined as the target resource pools to satisfy the resource scheduling request.

[0122] It should be emphasized that the specific implementation methods of the resource scheduling method disclosed herein are diverse and are not limited to the specific embodiment given in FIG. 4D above.

[0123] In the embodiment of the present disclosure illustrated by steps 310 to 330, the resource scheduling method requires, in response to a resource scheduling request from a target task, obtaining multiple candidate resource combinations corresponding to the target task; each candidate resource combination includes at least one target resource required by the target task and a target resource number for the target resource. Then, for each candidate resource combination, based on the at least one target resource and the target resource number, a multi-level resource pool is searched in ascending order to determine a seed resource pool corresponding to the candidate resource combination. Therefore, a series of corresponding seed resource pools can be determined for each candidate resource combination corresponding to the target task. Furthermore, based on the level of the seed resource pool corresponding to each candidate resource combination, a target resource pool is determined from the multiple seed resource pools to satisfy the resource scheduling request. It should be noted that because the resource scheduling method of the present disclosure determines the target resource pool that satisfies the resource scheduling request based on the level of the seed resource pool corresponding to each candidate resource combination, it can respond to the resource scheduling request of the target task more quickly, thereby improving resource scheduling efficiency. The above solution can reasonably determine the target resource pool that satisfies the resource scheduling request for a variety of application scenarios, thereby providing greater flexibility in resource scheduling.

[0124] Detailed description of step 320

[0125] 5 , in some embodiments provided herein, each storage resource pool in the multi-level resource pool includes various storage resources of various general types and the number of storage resources under each general type. Step 320 may include, but is not limited to, steps 510 to 520 described below.

[0126] Step 510 , for each candidate resource combination, based on at least one target resource and the number of target resources, searching each resource pool in the multi-level resource pool in order from low to high based on the preset levels of the multi-level resource pool;

[0127] Step 520: If the target resource quantity for each target resource in a resource pool to be examined in the multi-level resource pool can be satisfied by the number of resources under a single general type, a seed resource pool is determined in the resource pool to be examined.

[0128] Steps 510 to 520 are described in detail below.

[0129] In step 510, for each candidate resource combination, the multi-level resource pool is searched in ascending order based on at least one target resource and the number of target resources. It should be noted that in order to determine the seed resource pool from the multi-level resource pool that provides the resources to be scheduled for the candidate resource combination, the multi-level resource pool needs to be searched for each candidate resource combination. The search for the multi-level resource pool is based on the levels of the resource pools at each level, and is conducted in ascending order. It should be emphasized that the levels of the resource pools can be rated based on a variety of criteria.

[0130] In step 520, if the target number of resources for each target resource in a resource pool to be examined in the multi-level resource pool can be satisfied by the number of resources under a single general type, then a seed resource pool is determined in the resource pool to be examined. It should be noted that the resource pool to be examined refers to the resource pool to be searched in the process of searching the multi-level resource pool to determine the seed resource pool. When the resource pool to be examined can meet the target number of resources for each target resource in the candidate resource combination, and each target resource can be satisfied by the number of resources under a single general type, then a seed resource pool can be determined in the resource pool to be examined.

[0131] It should be clarified that the general type refers to the general type of a target resource. Target resources of the same general type can be mixed, but target resources of different general types cannot be mixed. In some cases, the resources stored in a resource pool may not necessarily meet the requirements of each resource sub-category for a resource scheduling request. Resources of the same general type can be substituted for each other and perform the same function. Therefore, if a resource pool cannot meet the requirements of each resource sub-category for a resource scheduling request, using resources of the same general type as equal substitutes can still meet the resource scheduling request, thereby increasing resource scheduling flexibility.

[0132] In some embodiments, when the target resource is a code block, general type A includes code blocks A1, A2, and A3 for implementing function A; general type B includes code blocks B1, B2, and B3 for implementing function B. Code blocks A1, A2, and A3 under general type A can replace each other in terms of function. When a resource scheduling request requires a code block of general type A, any of code blocks A1, A2, and A3 can be called in the data storage module as the target resource for scheduling. Even if code block A1 is not stored in the data storage module, as long as code block A2 or A3 is stored in the data storage module, the resource scheduling request can be satisfied. However, code blocks B1, B2, and B3 under general type B cannot satisfy the resource scheduling request's need for code blocks of general type A.

[0133] In other embodiments, when the target resource is a cable, general type A includes three types of cables: model A1, model A2, and model A3; and general type B includes three types of cables: model B1, model B2, and model B3. The cables of model A1, model A2, and model A3 under general type A can be used interchangeably. When the stock of model A1 cable is insufficient to meet a resource scheduling request, model A2 or model A3 cable can be used to replenish the stock to meet the resource scheduling request. However, the cables of model B1, model B2, and model B3 under general type B cannot be used to replenish the stock of model A1 cable.

[0134] It should be understood that if the target resource number for each target resource in a resource pool to be investigated can be met by the number of resources under a single general type, it means that the resource pool to be investigated can satisfy the resource scheduling request in one go. To improve the efficiency of resource scheduling, the embodiment of the present disclosure can determine the resource pool that satisfies the resource scheduling request in one go as a seed resource pool. In some embodiments, there may be multiple resource pools to be investigated in a multi-level resource pool that can satisfy the resource scheduling request in one go. In this case, it is necessary to determine the seed resource pool from the multiple resource pools to be investigated.

[0135] It should be emphasized that in the embodiment of the present disclosure illustrated in steps 510 to 520, if a resource pool to be examined in the multi-level resource pools can satisfy the target resource quantity for each target resource using the number of resources of a single general type, then the resource pool to be examined can satisfy the resource scheduling request in one go. Because it can satisfy the resource scheduling request in one go, it is designated as a seed resource pool, which helps further improve resource scheduling efficiency.

[0136] Referring to some embodiments of the present disclosure provided in FIG6 , it is shown that if the target resource number for each target resource in a resource pool to be investigated in a multi-level resource pool can be satisfied by the number of resources under a single general type, the resource scheduling request includes candidate resource combination A, candidate resource combination B, and candidate resource combination C, each of which has corresponding multiple target resources and the number of target resources that need to be satisfied. Candidate resource combination A requires 3 target resources A, 4 target resources C, and 5 target resources D, candidate resource combination B requires 2 target resources B, 5 target resources D, and 8 target resources E, and candidate resource combination C requires 30 target resources A and 40 target resources F.

[0137] It can be clearly seen that the number of target resources for each of target resources A, target resource B, target resource C, target resource D, target resource E, and target resource F can be satisfied by the number of resources under a single general type, which means that in the resource pool to be examined, there are at least 33 resources of the same general type as target resource A, at least 2 resources of the same general type as target resource B, at least 4 resources of the same general type as target resource C, at least 10 resources of the same general type as target resource D, at least 8 resources of the same general type as target resource E, and at least 40 resources of the same general type as target resource F.

[0138] On this basis, based on the various target resources and target resource quantities, searching the multi-level resource pools from low to high levels can determine that there are resource pools A1 and B2 to be examined within the multi-level resource pools. The target resource quantities for each of target resources A, B, C, D, E, and F can all be met using the number of resources of a single general type. Therefore, seed resource pools can be identified within resource pools A1 and B2 to be examined.

[0139] 7 , in some embodiments provided by the present disclosure, step 520 may include, but is not limited to, the following steps 710 to 720 .

[0140] Step 710: If the number of the resource pool to be examined is one, determine the resource pool to be examined as a seed resource pool;

[0141] Step 720: If the number of resource pools to be examined is two or more, determine a seed resource pool based on the levels of the two or more resource pools to be examined.

[0142] Steps 710 to 720 are described in detail below.

[0143] In step 710, if there is only one resource pool to be examined, the resource pool to be examined is determined as the seed resource pool. It should be emphasized that the resource pool to be examined refers to the resource pool to be searched in the process of searching the multi-level resource pools to determine the seed resource pool. It should be noted that if there is only one resource pool to be examined in the multi-level resource pools, it means that only one resource pool in the multi-level resource pools can be used to satisfy the resource scheduling request. Therefore, this resource pool to be examined can be determined as the seed resource pool.

[0144] In step 720, if the number of resource pools to be examined is two or more, a seed resource pool is determined based on the levels of the two or more resource pools to be examined. It should be noted that if the number of resource pools to be examined in a multi-level resource pool is two or more, it means that two or more resource pools in the multi-level resource pool can be used to satisfy the resource scheduling request, and a seed resource pool needs to be determined based on the levels of the two or more resource pools to be examined.

[0145] The disclosed embodiment illustrated through steps 710 to 720 indicates that when only one resource pool to be examined in a multi-level resource pool can satisfy a resource scheduling request, this resource pool is designated as a seed resource pool, thereby reducing the economic and time costs incurred during resource scheduling and improving resource scheduling efficiency. However, when two or more resource pools to be examined in a multi-level resource pool can satisfy a resource scheduling request, it is necessary to select a superior option from these two or more resource pools to be examined based on their levels, thereby further reducing the economic and time costs incurred during resource scheduling and improving resource scheduling efficiency.

[0146] 8 , in some embodiments provided by the present disclosure, step 720 may include, but is not limited to, the following steps 810 to 830 .

[0147] Step 810: If the number of resource pools to be inspected is two or more, a resource pool with a lower level among the two or more resource pools to be inspected is determined as a seed resource pool;

[0148] Step 820: If there are two or more resource pools to be examined, and the levels of the two or more resource pools to be examined are the same, determine the scheduling return amounts of the two or more resource pools to be examined, and determine the seed resource pool based on the scheduling return amounts;

[0149] Step 830: If the scheduling return amounts of two or more resource pools to be examined are the same, a seed resource pool is determined based on the resource pool types of the two or more resource pools to be examined.

[0150] Steps 810 to 830 are described in detail below.

[0151] In step 810, if the number of resource pools to be examined is two or more, the resource pool to be examined with a lower level among the two or more resource pools to be examined is determined as the seed resource pool. It should be emphasized that the resource pool to be examined refers to the resource pool to be searched in the process of searching multi-level resource pools to determine the seed resource pool. It should be noted that if the number of resource pools to be examined is two or more, and there are differences in the levels corresponding to these two or more resource pools to be examined. Then, according to the levels of the resource pools to be examined, a better option can be screened out from the two or more resource pools to be examined, thereby further reducing the economic and time costs incurred in the resource scheduling process and improving the efficiency of resource scheduling.

[0152] In step 820, if the number of resource pools to be examined is two or more, and the levels of the two or more resource pools to be examined are the same, the scheduling return amounts of the two or more resource pools to be examined are determined, and the seed resource pool is determined based on the scheduling return amounts. It should be noted that if the number of resource pools to be examined is two or more, and the corresponding levels of the two or more resource pools to be examined are the same, then it is necessary to determine the scheduling return amounts of the two or more resource pools to be examined to screen out a better option based on the scheduling return amounts. It should be pointed out that the scheduling return amount refers to the surplus amount that needs to be returned to the resource pool in the process of resource scheduling using the reserves of the resource pool. It should be understood that the scheduling return amount is generated because the reserves of the resource pool fail to just meet the resource scheduling request. Therefore, the smaller the scheduling return amount of the resource pool to be examined, the lower the overhead of returning the surplus resources to the resource pool. It can be clearly seen that when the levels of two or more resource pools to be examined are the same, determining the scheduling return amounts of the two or more resource pools to be examined, and determining the seed resource pool based on the scheduling return amounts, will help reduce the economic and time costs generated in the resource scheduling process and improve resource scheduling efficiency.

[0153] In step 830, if the scheduling return amounts of two or more resource pools to be examined are the same, a seed resource pool is determined based on the resource pool types of the two or more resource pools to be examined. It should be noted that if the number of resource pools to be examined is two or more, the corresponding levels of the two or more resource pools to be examined are the same, and the scheduling return amounts of the two or more resource pools to be examined are also the same, then it is necessary to determine the seed resource pool based on the resource pool types of the two or more resource pools to be examined. It should be pointed out that resource pool types can be classified by a variety of standards, such as resource pool types divided according to capacity scale, resource pool types divided according to storage margin, resource pool types divided according to resource scheduling authority, and various other resource pool types.

[0154] In the embodiment of the present disclosure shown in steps 810 to 830, in order to determine a seed resource pool from two or more resource pools to be examined, it is necessary to first select the two or more resource pools to be examined according to the resource pool level, and select the resource pool to be examined with a lower level to be determined as the seed resource pool; if the corresponding levels of the two or more resource pools to be examined are the same, then select the two or more resource pools to be examined according to the scheduling return amount; if the corresponding levels of the two or more resource pools to be examined are the same, and the scheduling return amount is also the same, then select based on the resource pool type of the two or more resource pools to be examined, and finally determine the seed resource pool. In this way, it is possible to screen out a seed resource pool that helps to further reduce resource scheduling costs and improve resource scheduling efficiency from two or more resource pools to be examined.

[0155] 9 , in some embodiments, it is necessary to search multiple levels of resource pools. If the number of resource pools to be examined is one, the resource pool to be examined is determined as a seed resource pool. If the number of resource pools to be examined is two or more, specifically, the levels of resource pool level A, resource pool level B, resource pool level C, and resource pool level D are successively increased, wherein resource pools of resource pool level A include resource pool A1, resource pool A2, resource pool A3, etc., resource pools of resource pool level B include resource pool B1, resource pool B2, resource pool B3, etc., resource pools of resource pool level C include resource pool C1, resource pool C2, resource pool C3, etc., and resource pools of resource pool level D include resource pool D1, resource pool D2, resource pool D3, etc.

[0156] In the embodiment of the present disclosure, if the number of resource pools to be examined is two or more, it is necessary to first select the two or more resource pools to be examined according to the resource pool level, and select the resource pool to be examined with a lower level from resource pool level A, resource pool level B, resource pool level C, and resource pool level D to be determined as the seed resource pool.

[0157] If only resource pool B1, resource pool B2, resource pool B3, resource pool B4 and other resource pools to be examined corresponding to resource pool level B can meet the resource scheduling request, then the corresponding levels of these two or more resource pools to be examined are the same, and it is necessary to further select these two or more resource pools to be examined according to the scheduling return amount to determine the seed resource pool.

[0158] If multiple resource pools to be examined, such as resource pool B2, resource pool B5, resource pool B8, resource pool B9, resource pool B11, and resource pool B14, can meet the resource scheduling request while also having the same scheduling return amount, it is necessary to determine the seed resource pool based on the resource pool types corresponding to the multiple resource pools to be examined, such as resource pool B2, resource pool B5, resource pool B8, resource pool B9, resource pool B11, and resource pool B14.

[0159] In this way, a seed resource pool that helps to further reduce resource scheduling costs and improve resource scheduling efficiency can be screened out from two or more resource pools to be examined.

[0160] 10 , in some embodiments provided by the present disclosure, step 820 of determining the scheduling return amounts of two or more resource pools to be investigated may include, but is not limited to, the following steps 1010 to 1060 .

[0161] Step 1010: Obtain resource container capacities of multiple resource containers in the resource pool to be inspected;

[0162] Step 1020: sort the multiple resource containers in descending order according to the capacity of the resource containers;

[0163] Step 1030: determine the resource container with the highest ranking as the resource container to be inspected, and determine the target resource number as the number of unscheduled resources;

[0164] Step 1040, executing a first process, the first process comprising: modulating the number of unscheduled resources by the remainder of the resource container capacity of the resource container to be examined, updating the number of unscheduled calls, and updating the resource container to be examined with the next resource container in the order;

[0165] Step 1050, repeat the first process until the resource container to be inspected is empty;

[0166] Step 1060: Determine the scheduling return amount based on the number of unscheduled resources.

[0167] Steps 1010 to 1060 are described in detail below.

[0168] In step 1010, the resource container capacities of multiple resource containers in the resource pool to be examined are obtained. It should be noted that each resource in the resource pool to be examined can be stored by a resource container, and each resource container can store a certain number of resources. It should be noted that the resource container capacity refers to the number of resources that a resource container can store. Because different resource containers can store different amounts of resources, the resource container capacities of different resource containers may also vary.

[0169] In step 1020, the multiple resource containers are sorted from largest to smallest according to their capacity. It should be noted that the purpose of sorting the multiple resource containers from largest to smallest according to their capacity is to facilitate resource scheduling in subsequent steps based on this sorting and to determine the corresponding scheduling return amount for the resource pool to be examined. The resource container at the top of the sorting is the resource container with the largest capacity.

[0170] In steps 1030 to 1050, the resource container at the top of the sorting is determined as the resource container to be examined, and the target number of resources is determined as the number of unscheduled resources. Furthermore, a first process is executed, which includes: modulating the number of unscheduled resources by the remainder of the resource container capacity of the resource container to be examined to update the number of unscheduled calls, updating the resource container to be examined by the next resource container in the sorting, and repeating the first process until the resource container to be examined is empty. It should be emphasized that multiple resource containers are sorted from large to small according to the size of the resource container capacity, where the resource container at the top of the sorting is the resource container with the largest resource container capacity. On this basis, in order to meet the resource scheduling request, it is necessary to first determine the resource container at the top of the sorting as the resource container to be examined, determine the target number of resources as the number of unscheduled resources, and then execute the first process based on the resource container to be examined and the number of unscheduled resources to update the resource container to be examined and the number of unscheduled resources. It should be noted that in the first process, it is necessary to first modulate the number of unscheduled resources by the remainder of the resource container capacity of the resource container to be examined. It should be understood that since the number of unscheduled resources is often greater than the resource container capacity of a single resource container to be examined, the resource container capacity of the resource container to be examined can generally only satisfy a portion of the unscheduled resources and is unlikely to satisfy all of the unscheduled resources at once. Therefore, a modulo operation is performed between the number of unscheduled resources and the resource container capacity of the resource container to be examined to determine the remainder corresponding to the number of unscheduled resources that the current resource container to be examined cannot satisfy. Since the resource container capacity of the resource container to be examined satisfies a portion of the unscheduled resources, the number of unscheduled calls is further updated. To determine how much of the updated number of unscheduled calls the resource container capacity of the next resource container can satisfy, the resource container to be examined is updated with the next resource container in the sort, and the first process is repeated until the resource container to be examined is empty. It should be understood that each round of the first process requires updating the resource container to be examined with the next resource container in the sort, which is equivalent to replacing the current resource container with the next resource container as the updated resource container to be examined. When the resource container to be examined is empty, i.e., there is no next resource container, it means that the traversal of all resource containers in the sort is complete.

[0171] In step 1060, the scheduling return amount is determined based on the number of unscheduled resources. It should be noted that by proceeding through steps 1030 to 1050 until the resource container to be examined is empty, all resource containers in the sort are completely traversed. At this point, the number of unscheduled resources represents a number of resources that may not be fully satisfied by each resource container in the sort. Therefore, the scheduling return amount that needs to be returned to the resource pool during the resource scheduling process can be determined by comparing the number of unscheduled resources with the resource container with the smallest resource container capacity in the sort.

[0172] The embodiment of the present disclosure shown in steps 1010 to 1050 shows a series of feasible steps for determining the scheduling return amount of the resource pool to be investigated. In each step, a larger resource container capacity is first used to meet the target number of resources, and then a larger resource container capacity is used to meet the remaining target number of resources, until the resource container with the smallest resource container capacity cannot fully meet the target number of resources, and the scheduling return amount that needs to be returned to the resource pool can be determined. In this way, it is convenient to screen out a seed resource pool that helps to further reduce resource scheduling costs and improve resource scheduling efficiency from two or more resource pools to be investigated.

[0173] 11A to 11D provide some more specific embodiments of the present disclosure, illustrating an optional process for determining a scheduling return amount for a resource pool to be investigated.

[0174] In Figure 11A, the resource pool to be examined includes resource container A, resource container B, resource container C, resource container D, resource container E, and resource container F. The multiple resource containers are sorted from largest to smallest according to their capacity, resulting in the following order: resource container E, resource container C, resource container B, resource container A, resource container D, and resource container F. Furthermore, resource container E, which is ranked first, is determined as the resource container to be examined, and the target number of resources, 120, is determined as the number of unscheduled resources, and the first process begins. The first process of the first round requires first determining the resource container capacity of the resource container to be examined, namely, the resource container capacity of resource container E, 50. A modulo operation is then performed on the unscheduled resource number, 120, and the resource container capacity of the resource container to be examined, 50, to obtain a remainder of 20.

[0175] After obtaining the remainder 20, the number of unscheduled resources is updated to 20, and the resource container to be examined is updated with the next resource container C in the sort.

[0176] In Figure 11B , the resource container to be examined is resource container C, and the number of unscheduled resources is 20. Based on this, a new round of the first process is performed. First, the resource container capacity of resource container C is determined to be 25. The number of unscheduled resources, 20, is then modulo-calculated by the resource container capacity of the resource container to be examined, 25: 20% / 25, yielding a remainder of 20. It should be noted that the resource container capacity of resource container C, 25, is greater than the number of unscheduled resources, 20. Therefore, this first round of the process does not change the number of unscheduled resources.

[0177] After obtaining the remainder 20, the number of unscheduled resources is updated to 20, and the resource container to be examined is updated with the next resource container B in the sorting.

[0178] In Figure 11C , the resource container to be examined is resource container B, and the number of unscheduled resources is 20. Based on this, a new round of the first process is performed. First, the resource container capacity of resource container B is determined to be 15. The number of unscheduled resources, 20, is then modulo-calculated by the resource container capacity of the resource container to be examined, 15: 20% / 15, yielding a remainder of 5. It should be noted that the resource container capacity of resource container C, 15, is less than the number of unscheduled resources, 20. Therefore, this round of the first process adjusts the number of unscheduled resources, 20, to 5.

[0179] After the number of unscheduled resources is updated to 5, the resource container to be examined is updated with the next resource container A in the sorting order. The first process is repeated in the above manner.

[0180] In Figure 11D, until the first process corresponding to resource container F ends, the resource container to be examined is updated to empty. It should be noted that the resource container capacity of resource container A (12), the resource container capacity of resource container D (10), and the resource container capacity of resource container F (8) are all greater than the number of unscheduled resources (5). Therefore, the number of unscheduled resources (5) remains unchanged during these three first processes. Clearly, the corresponding number of unscheduled resources after the first process ends is 5. At this point, a further comparison is needed based on the number of unscheduled resources and the resource container with the smallest resource container capacity in the sorted order to determine the scheduling return amount that needs to be returned to the resource pool during the resource scheduling process. Specifically, based on the number of unscheduled resources being 5, the resource container with the smallest resource container capacity of 8 in the sorted order is resource container F. To ensure that the target number of resources is met, resource container F, with its resource container capacity of 8, needs to be used to satisfy the remaining number of unscheduled resources (5). In this case, the corresponding scheduling return amount that needs to be returned to the resource pool is: 8 - 5 = 3. Therefore, in this disclosed embodiment, the scheduling return amount is 3.

[0181] It should be understood that there are various implementation methods for determining the scheduling return amount of the resource pool to be investigated, which may include, but are not limited to, the specific embodiments listed above.

[0182] 12 , in some embodiments provided by the present disclosure, step 1060 may include, but is not limited to, the following steps 1210 to 1230 .

[0183] Step 1210, obtaining the number of discrete resources in the resource pool to be examined;

[0184] Step 1220: If the number of discrete resources is greater than the number of unscheduled resources, determine the scheduling return amount to be 0;

[0185] In step 1230, if the number of discrete resources is not greater than the number of unscheduled resources, the number of unscheduled resources is subtracted from the resource container capacity of the last resource container in the row to obtain the scheduling return amount.

[0186] Steps 1210 to 1230 are described in detail below.

[0187] In step 1210, the number of discrete resources in the resource pool to be examined is obtained. It should be noted that the number of discrete resources refers to the number of discrete resources stored in the resource pool to be examined. It can be clearly seen that the resource containers sorted from small to large according to the resource container capacity may not necessarily be able to exactly meet the target number of resources. Specifically, after all the resource containers in the sort are traversed, the target number of resources is still not met. If the resource container with the smallest resource container capacity in the sort is used to meet the target number of resources, the resources that supply the target number of resources will exceed the number of unscheduled resources, thereby generating a scheduled return amount that needs to be returned to the resource pool. The discrete resources stored in the resource pool to be examined are used to deal with this situation. When the target number of resources is still not met after all the resource containers in the sort are traversed, discrete resources are determined from the resource pool to be examined based on the number of unscheduled resources to achieve exactly meeting the target number of resources.

[0188] In step 1220, if the number of discrete resources is greater than the number of unscheduled resources, the scheduling return amount is determined to be 0. It should be noted that if the number of discrete resources is greater than the number of unscheduled resources, it means that the number of unscheduled resources can be selected from the multiple discrete resources stored in the resource pool to be examined to meet the target number of resources. If the target number of resources is exactly met, the scheduling return amount can be determined to be 0.

[0189] In step 1230, if the number of discrete resources is not greater than the number of unscheduled resources, the number of unscheduled resources is subtracted from the resource container capacity of the last resource container in the sorting process to obtain the scheduling return amount. It should be noted that if the number of discrete resources is not greater than the number of unscheduled resources, this means that even if all the discrete resources stored in the resource pool under consideration are used to replenish the target number of resources, the target number of resources cannot be met. In this case, the resource container with the smallest resource container capacity in the sorting process must be used to meet the target number of resources. Since replenishing the target number of resources will exceed the number of unscheduled resources, the scheduling return amount can be obtained by subtracting the number of unscheduled resources from the resource container capacity of the last resource container in the sorting process. This facilitates selecting the optimal resource pool based on the scheduling return amount among two or more resource pools under consideration. It should be noted that since the smaller the scheduling return amount, the lower the cost of returning resources to the resource pool, the resource pool with the smaller scheduling return amount can be determined as the better choice among two or more resource pools under consideration.

[0190] The embodiment of the present disclosure is shown by steps 1210 to 1230. In order to reduce the overhead of returning resources to the resource pool, it is necessary to give priority to determining whether the number of discrete resources in the resource pool to be investigated can cover the number of unscheduled resources. If the number of discrete resources can cover the number of unscheduled resources, the number of discrete resources of the unscheduled resources is determined from the resource pool to be investigated to just meet the target number of resources; if the number of discrete resources is not enough to cover the number of unscheduled resources, the resource container with the smallest resource container capacity in the sorting is needed to meet the target number of resources. At this time, since the resources for replenishing the target number of resources will exceed the number of unscheduled resources, the scheduling return amount can be obtained by subtracting the number of unscheduled resources from the resource container capacity of the last resource container in the sorting. In this way, when two or more resource pools to be investigated have the same level, the two or more resource pools to be investigated can be selected according to the scheduling return amount, and a seed resource pool that helps to further reduce the resource scheduling cost and improve the resource scheduling efficiency can be screened out from the two or more resource pools to be investigated.

[0191] Referring to FIG13 , some embodiments of the present disclosure are provided, illustrating an example diagram for determining a scheduling return amount. When the resource pool to be investigated includes six resource containers, namely resource container A, resource container B, resource container C, resource container D, resource container E, and resource container F, as well as multiple discrete resources, such as discrete resources A, discrete resources B, discrete resources C, and discrete resources D, it should be noted that when traversing resource containers A, resource container B, resource container C, resource container D, resource container E, and resource container F in the resource pool to be investigated based on the target resource number, each resource container may not exactly meet the target resource number, thereby obtaining the number of unscheduled resources. To further determine the scheduling return amount corresponding to the resource pool to be investigated, it is necessary to first obtain the number of discrete resources in the resource pool to be investigated, then compare the number of discrete resources with the number of unscheduled resources. If the number of discrete resources is greater than the number of unscheduled resources, the scheduling return amount is determined to be 0. If the number of discrete resources is not greater than the number of unscheduled resources, the scheduling return amount is obtained by subtracting the number of unscheduled resources from the resource container capacity of the last resource container in the row. In this way, when two or more resource pools to be examined have the same level, the two or more resource pools to be examined can be selected according to the scheduling return amount, and a seed resource pool that helps to further reduce resource scheduling costs and improve resource scheduling efficiency can be screened out from the two or more resource pools to be examined.

[0192] 14 , in some embodiments provided by the present disclosure, step 320 may further include, but is not limited to, the following steps 1410 to 1420 .

[0193] Step 1410: If any storage resource pool in the multi-level resource pool cannot meet the target resource number for each target resource with the number of resources under a single general type, then among the storage resource pools at the lowest level, select a storage resource pool with the smallest shortfall after meeting the target resource number with the number of resources under a single general type as a seed resource pool, use the single general type as the target general type, and use the number of resources that are still not met after meeting the target resource number with the number of resources under a single general type as the remaining resource number.

[0194] Step 1420, among other storage resource pools of the lowest level, select another storage resource pool with the smallest shortfall after using the number of resources under the target general type to satisfy the remaining number of resources, as a seed resource pool, and update the remaining number of resources with the number of resources that are still not satisfied after using the number of resources under the target general type to satisfy the remaining number of resources, until all storage resource pools of the lowest level are traversed.

[0195] Steps 1410 to 1420 are described in detail below.

[0196] In step 1410, if any storage resource pool in the multi-level resource pool cannot meet the target resource quantity for each target resource using the number of resources under a single general type, then a storage resource pool with the smallest shortfall after using the number of resources under a single general type to meet the target resource quantity is selected from the lowest-level storage resource pools as a seed resource pool. The single general type is used as the target general type, and the number of resources that remain unsatisfied after using the number of resources under a single general type to meet the target resource quantity is used as the remaining resource quantity. It should be noted that the level of resource pools can have a variety of rating criteria, and the overhead caused by resource scheduling increases from low to high levels of resource pools.

[0197] It's important to emphasize that a general type refers to the general type of a target resource. Target resources of the same general type can be mixed, but target resources of different general types cannot be mixed. In some cases, the resources stored in a resource pool may not necessarily meet the resource scheduling request for each resource sub-category. Resources of the same general type can be substituted for each other and perform the same function. Therefore, if a resource pool cannot meet the resource scheduling request for each resource sub-category, using resources of the same general type as equal substitutes can still meet the resource scheduling request, thus increasing resource scheduling flexibility.

[0198] Therefore, in the disclosed embodiment, if a resource pool to be examined in the multi-level resource pool can satisfy the target resource quantity for each target resource using the number of resources under a single general type, then a seed resource pool is determined in the resource pool to be examined. However, if any storage resource pool in the multi-level resource pool cannot satisfy the target resource quantity for each target resource using the number of resources under a single general type, then a seed resource pool must be determined through other means.

[0199] In some more specific embodiments, a storage resource pool with the smallest shortfall after using the number of resources under a single general type to meet the target number of resources can be selected from the lowest-level storage resource pool as a seed resource pool. The purpose is to first use the lowest-level storage resource pool to meet as many of the number of resources under a single general type as possible, determine the shortfall of the corresponding resources, and then determine the storage resource pool with the smallest shortfall as a seed resource pool. Since the resource pool's level increases from low to high, the overhead caused by its resource scheduling increases successively. Determining the seed resource pool in this way helps to reduce the overall overhead of resource scheduling and improve resource scheduling efficiency.

[0200] Furthermore, a single general type is used as the target general type, and the number of resources that are not met after the target number of resources is met using the number of resources under the single general type is used as the remaining number of resources, so that the remaining resources can be scheduled in subsequent steps to make up for the target number of resources.

[0201] In step 1420, among other storage resource pools at the lowest level, another storage resource pool with the smallest shortfall after satisfying the remaining resource number with the number of resources under the target general type is selected as a seed resource pool, and the remaining resource number is updated with the number of resources that are still not satisfied after satisfying the remaining resource number with the number of resources under the target general type, until all storage resource pools at the lowest level are traversed.

[0202] It should be noted that after a single general type is selected as the target general type and the remaining number of resources after satisfying the target number with the resources under the single general type is used as the remaining number of resources, in order to further supplement the target number of resources, it is necessary to identify another storage resource pool from the other lowest-level storage resource pools that has the smallest shortfall after satisfying the remaining number with the resources under the target general type. This is because identifying another storage resource pool from the other lowest-level storage resource pools helps reduce overall resource scheduling overhead, improve resource scheduling efficiency, and further improve the efficiency of supplementing the target number of resources. Therefore, it is necessary to select another storage resource pool that has the smallest shortfall after satisfying the remaining number with the resources under the target general type as a seed resource pool. If these two storage resource pools still cannot supplement the target number of resources, the remaining number of resources is updated with the remaining number of resources after satisfying the remaining number with the resources under the target general type. The next seed resource pool that can provide the target resources is then searched for from the other lowest-level storage resource pools until all storage resource pools at the lowest level are exhausted.

[0203] In the embodiment of the present disclosure shown in steps 1410 to 1420, since the overhead brought by resource scheduling increases successively from the low level to the high level of the resource pool, the seed resource pool is determined preferentially among the multiple storage resource pools with the lowest level, which helps to reduce the overall overhead of resource scheduling, improve resource scheduling efficiency, and further improve the efficiency of supplementing the target number of resources.

[0204] 15A and 15B provide some embodiments of the present disclosure, illustrating a situation where any storage resource pool in a multi-level resource pool cannot meet the target resource quantity for each target resource using the number of resources under a single general type. It should be understood that the levels of resource pool level A, resource pool level B, resource pool level C, and resource pool level D are successively higher, wherein resource pools of resource pool level A include resource pool A1, resource pool A2, resource pool A3, etc., resource pools of resource pool level B include resource pool B1, resource pool B2, resource pool B3, etc., resource pools of resource pool level C include resource pool C1, resource pool C2, resource pool C3, etc., and resource pools of resource pool level D include resource pool D1, resource pool D2, resource pool D3, etc.

[0205] Referring to Figure 15A , specifically, candidate resource combination A in the resource scheduling request requires 345 target resources A, 425 target resources C, and 540 target resources D. None of the storage resource pools in the multi-level resource pool can meet the target resource counts for each target resource using the number of resources under a single general type. In this case, it is necessary to select a storage resource pool from the lowest-level storage resource pools—that is, resource pools A1, A2, A3, and A4 at resource pool level A—that has the smallest shortfall after meeting the target resource counts using the number of resources under a single general type. This pool serves as a seed resource pool. Clearly, since resource pool A1 can best meet the target resource counts, its corresponding shortfall after meeting the target resource counts is the smallest. Therefore, resource pool A1 is designated as the seed resource pool. The single general type is then used as the target general type, and the number of resources remaining unmet after meeting the target resource counts using the number of resources under the single general type is used as the remaining resource count. Among them, the remaining resources and the number of remaining resources are specifically: [target resource A, 45], [target resource C, 25], [target resource D, 190].

[0206] Referring to Figure 15B , after determining the remaining resources and the number of remaining resources, another storage resource pool with the lowest level, which has the smallest shortfall after using the target general type's resource count to satisfy the remaining resource count, is selected as a seed resource pool. Since among the other storage resource pools with the lowest level: resource pool A2, resource pool A3, and resource pool A4, resource pool A3 can best satisfy all remaining resource counts, its corresponding shortfall after satisfying the remaining resource count is the smallest. The shortfall can be calculated by subtracting the number of resources stored in the corresponding resource pool from the remaining resource count, specifically: [target resource A, 5], [target resource C, 0], and [target resource D, 90]. Therefore, resource pool A2, which has the smallest shortfall after using the target general type's resource count to satisfy the remaining resource count, is determined as another seed resource pool. Furthermore, the remaining resource count is updated for any remaining resource counts that remain unsatisfied after using the target general type's resource count to satisfy the remaining resource count.

[0207] By traversing the lowest-level storage resource pools in the above manner, multiple seed resource pools can be determined. This helps reduce the overall cost of resource scheduling, improves resource scheduling efficiency, and further increases the efficiency of replenishing the target number of resources.

[0208] 16 , after traversing the lowest-level storage resource pool in step 1420 , the resource scheduling method of the embodiment of the present disclosure may further execute a second process, which may include, but is not limited to, the following steps 1610 to 1630 .

[0209] Step 1610: If the number of remaining resources is still not 0 after traversing the storage resource pool at the lowest level, the second-to-last level is used as the target level, and traversing is performed in the storage resource pool at the target level.

[0210] Step 1620: Select one of the untraversed storage resource pools that has the smallest missing amount after using the number of resources under the target general type to satisfy the number of remaining resources, and use it as a seed resource pool.

[0211] Step 1630, update the remaining resource number after using the resource number under the target general type to satisfy the remaining resource number, until the storage resource pool of the target level is traversed, and update the target level with the previous level of the target level, repeat the second process until the highest level is reached.

[0212] Steps 1610 to 1630 are described in detail below.

[0213] In steps 1610 to 1630, if the number of remaining resources is still not 0 after traversing the storage resource pool of the lowest level, the second-to-last level is taken as the target level, and the traversal is performed in the storage resource pool of the target level; further, among the storage resource pools that have not been traversed, a storage resource pool with the smallest missing amount after satisfying the remaining resource number with the number of resources under the target general type is selected as a seed resource pool; further, the remaining resource number is updated with the number of resources that are still not satisfied after satisfying the remaining resource number with the number of resources under the target general type, until the storage resource pool of the target level is traversed, and the target level is updated with the level above the target level, and the second process is repeated until the highest level is reached.

[0214] It should be emphasized that the level of resource pools can have a variety of rating criteria. The resource pools are ranked from low to high, and the overhead brought about by their resource scheduling increases in sequence. Therefore, if after traversing the lowest-level storage resource pool, the number of remaining resources is still not 0, the second-to-last level can be used as the target level, and the target-level storage resource pool can be traversed. The purpose is to first use the lower-level storage resource pools to meet as many resource quantities as possible under a single general type, determine the missing amount of resources corresponding to the second-to-last level resource pool, and then determine the storage resource pool with the smallest missing amount as a seed resource pool. The second-to-last level is traversed in the same way as the lowest-level resource pool, and the target resource target is supplemented. Since the resource pools are ranked from low to high, the overhead brought about by their resource scheduling increases in sequence, determining the seed resource pool in this way helps to reduce the overall overhead of resource scheduling and improve resource scheduling efficiency.

[0215] Similarly, after the penultimate level resource pool is traversed, if the number of remaining resources is still not zero, the target level is updated with the previous level, and the second process is repeated until the highest level is reached. It should be noted that if the number of remaining resources is reset to zero during the target level resource pool traversal, all seed resource pools used to provide the target resource can be determined.

[0216] In the embodiments of the present disclosure shown by 1610 to 1630, since the overhead brought by resource scheduling increases successively from low to high levels of resource pools, the seed resource pool is determined preferentially among multiple storage resource pools at lower levels, which helps to reduce the overall overhead of resource scheduling, improve resource scheduling efficiency, and further improve the efficiency of supplementing the target number of resources.

[0217] Detailed description of step 330

[0218] 17 , step 330 may include, but is not limited to, steps 1710 to 1720 described below.

[0219] Step 1710: If each candidate resource combination corresponds to a seed resource pool, obtain the level of the seed resource pool corresponding to each candidate resource combination;

[0220] Step 1720: Determine the seed resource pool with the lowest level among the seed resource pools corresponding to each candidate resource combination as the target resource pool.

[0221] Steps 1710 to 1720 are described in detail below.

[0222] In step 1710, if each candidate resource combination corresponds to a seed resource pool, the level of the seed resource pool corresponding to each candidate resource combination is obtained. It should be noted that in order to determine the target resource pool for satisfying the resource scheduling request from multiple seed resource pools, it is necessary to first obtain the level of the seed resource pool corresponding to each candidate resource combination to facilitate preferential screening among the multiple seed resource pools.

[0223] In step 1720, the seed resource pool with the lowest level among the seed resource pools corresponding to each candidate resource combination is determined as the target resource pool. It should be emphasized that resource scheduling based on any one of the multiple candidate resource combinations can meet the resource scheduling request of the target task. However, there are differences in the scheduling effect of meeting the resource scheduling request. Since the level of the resource pool increases from low to high, the overhead brought about by its resource scheduling increases successively. Therefore, the embodiment of the present disclosure determines the seed resource pool with the lowest level among the seed resource pools corresponding to each candidate resource combination as the target resource pool, thereby reducing the overhead generated by resource scheduling and improving resource scheduling efficiency.

[0224] Through the embodiment of the present disclosure shown in steps 1710 to 1720, the embodiment of the present disclosure preferentially selects the seed resource pool with the lowest level and determines it as the target resource pool, which helps to improve the efficiency of resource scheduling.

[0225] 18 , step 1720 may include, but is not limited to, steps 1810 to 1820 described below.

[0226] Step 1810: If there are two or more seed resource pools with the lowest level, determine the scheduling return amounts of the two or more seed resource pools, and determine the target resource pool based on the scheduling return amounts;

[0227] Step 1820: If the scheduling return amounts of two or more seed resource pools are the same, determine the target resource pool based on the resource pool types of the two or more seed resource pools.

[0228] Steps 1810 to 1820 are described in detail below.

[0229] In step 1810, if there are two or more seed resource pools with the lowest level, the scheduling return amounts of the two or more seed resource pools are determined, and the target resource pool is determined based on the scheduling return amounts. It should be noted that if there are two or more seed resource pools with the lowest level, it means that no further preferential screening can be made based on the level of the seed resource pool alone. On this basis, the scheduling return amounts of two or more seed resource pools can be determined, and preferential screening based on the scheduling return amounts can be performed to determine the target resource pool. It should be emphasized that the scheduling return amount refers to the surplus amount that needs to be returned to the resource pool in the process of resource scheduling using the reserves of the resource pool. It should be understood that the scheduling return amount is generated because the reserves of the resource pool fail to just meet the resource scheduling request. Therefore, the smaller the scheduling return amount of the resource pool to be examined, the lower the overhead of returning the surplus resources to the resource pool. It is clear that if there are two or more seed resource pools at the lowest level, determining the scheduling return amount of two or more seed resource pools and determining the target resource pool based on the scheduling return amount will help reduce the economic and time costs generated in the resource scheduling process and improve resource scheduling efficiency.

[0230] In step 1820, if the scheduling return amounts of two or more seed resource pools are the same, the target resource pool is determined based on the resource pool types of the two or more seed resource pools. It should be noted that if there are two or more seed resource pools of the lowest level, and there are two or more seed resource pools with the same scheduling return amounts, it means that no further preferential screening can be made based on the level of the seed resource pool and the scheduling return amount of the seed resource pool. It should be emphasized that resource pool types can be classified by a variety of standards, such as resource pool types divided according to capacity scale, resource pool types divided according to savings margin, resource pool types divided according to resource scheduling authority, and various other resource pool types.

[0231] In the embodiment of the present disclosure shown in steps 1810 to 1820, in order to determine the target resource pool from two or more seed resource pools, it is necessary to first select the two or more seed resource pools according to the resource pool level, and select the seed resource pool with a lower level to be determined as the target resource pool; if the corresponding levels of the two or more seed resource pools are the same, then select the two or more seed resource pools according to the scheduling return amount; if the corresponding levels of the two or more seed resource pools are the same and the scheduling return amount is also the same, then select the resource pool type based on the two or more seed resource pools, and finally determine the target resource pool. In this way, it is possible to screen out a target resource pool from two or more seed resource pools that helps to further reduce resource scheduling costs and improve resource scheduling efficiency.

[0232] Referring to Figure 19, according to some embodiments provided by the present disclosure, the levels of resource pool level A, resource pool level B, resource pool level C, and resource pool level D are increased in sequence, wherein the resource pools of resource pool level A include resource pool A1, resource pool A2, resource pool A3, etc., the resource pools of resource pool level B include resource pool B1, resource pool B2, resource pool B3, etc., the resource pools of resource pool level C include resource pool C1, resource pool C2, resource pool C3, etc., and the resource pools of resource pool level D include resource pool D1, resource pool D2, resource pool D3, etc.

[0233] The seed resource pool corresponding to the candidate resource combination A is included in the seed resource pool set A, including resource pool A1, resource pool A2, and resource pool A3. The corresponding resource return amount is 50, and the resource pool type is "large-scale resource pool".

[0234] The seed resource pool corresponding to candidate resource combination B is included in seed resource pool set B, including resource pool A4, resource pool A5, and resource pool A6. The corresponding resource return amount is 25, and the resource pool type is "large-scale resource pool".

[0235] The seed resource pool corresponding to the candidate resource combination C is included in the seed resource pool set C, including resource pool A7, resource pool A8, and resource pool A9. The corresponding resource return amount is 25, and the resource pool type is "large-scale resource pool".

[0236] The seed resource pool corresponding to the candidate resource combination D is included in the seed resource pool set D, including resource pool B1, resource pool B2, and resource pool B3. The corresponding resource return amount is 25, and the resource pool type is "large-scale resource pool".

[0237] FIG19 shows an optional implementation of determining a target resource pool from multiple seed resource pools:

[0238] In order to determine the target resource pool from multiple seed resource pools, it is necessary to first prioritize these multiple seed resource pools based on their resource pool levels, and select the seed resource pool with a lower level as the target resource pool. Specifically, since the resource pool levels of seed resource pool set A, seed resource pool set B, and seed resource pool set C are all resource pool level A, while the resource pool level of candidate resource combination D is resource pool level B. Under the premise that resource pool level A is lower than resource pool level B, the seed resource pools selected based on resource pool level are specifically the seed resource pools in seed resource pool set A, seed resource pool set B, and seed resource pool set C.

[0239] Furthermore, since there are multiple seed resource pools with the same level, it is necessary to prioritize these two or more seed resource pools based on their scheduled return amounts. Among seed resource pools A, B, and C, the scheduled return amount for A is 50, while the scheduled return amounts for B and C are 25. Therefore, the two seed resource pools B and C, each with a scheduled return amount of 25, are prioritized.

[0240] Furthermore, since there are multiple seed resource pools with the same corresponding levels and the same scheduling return amount, it is necessary to select the best of these multiple seed resource pools according to the resource pool type. It should be noted that in some embodiments, large-scale resource pools have a more complete resource scheduling system, a more standardized resource scheduling process, and a more efficient resource scheduling channel than small-scale resource pools. Therefore, seed resource pool set B and seed resource pool set C are selected according to the resource pool type, and the seed resource pool set C of the large-scale resource pool type is selected.

[0241] Clearly, after three levels of screening, the seed resource pool in seed resource pool set C is identified as the target resource pool. The candidate resource combination C corresponding to seed resource pool set C will also be used as the resource combination for resource scheduling in response to the target task's resource scheduling request. This allows two or more seed resource pools to be selected as the target resource pool that will further reduce resource scheduling costs and improve resource scheduling efficiency.

[0242] 20 , step 330 may further include, but is not limited to, the following steps 2010 to 2020 .

[0243] Step 210: If a portion of the candidate resource combinations corresponds to multiple seed resource pools, the highest-ranked seed resource pool among the multiple seed resource pools is obtained as the screened seed resource pool. For another portion of the candidate resource combinations corresponding to a single seed resource pool, the single seed resource pool is used as the screened seed resource pool.

[0244] In step 220 , the seed resource pool with the lowest level among the screened seed resource pools corresponding to each candidate resource combination is determined as the target resource pool.

[0245] Steps 2010 to 2020 are described in detail below.

[0246] It should be noted that, in the process of determining the target resource pool for satisfying the resource scheduling request from multiple seed resource pools based on the levels of the seed resource pools corresponding to each candidate resource combination, if a part of the candidate resource combinations corresponds to multiple seed resource pools, and the resource pool levels of these multiple seed resource pools are not consistent, the target resource pool can be determined through the embodiments of the present disclosure shown in steps 2010 to 2020.

[0247] In step 2010 to step 2020, if a part of the candidate resource combination corresponds to multiple seed resource pools, the seed resource pool with the highest level among the multiple seed resource pools is obtained as the seed resource pool after screening, and for another part of the candidate resource combination corresponding to the single seed resource pool, the single seed resource pool is used as the seed resource pool after screening. Further, the seed resource pool with the lowest level among the seed resource pools after screening corresponding to each candidate resource combination is determined as the target resource pool. It should be noted that the seed resource pool after screening of the candidate resource combination is used to preferentially screen the seed resource pool corresponding to the candidate resource combination. When the candidate resource combination corresponds to a single seed resource pool, the single seed resource pool can be directly used as the seed resource pool after screening. When the candidate resource combination corresponds to multiple seed resource pools, and the resource pool levels of these multiple seed resource pools are not consistent, it is necessary to determine the seed resource pool with the highest level from the multiple seed resource pools corresponding to this candidate resource combination and use it as the seed resource pool after screening. In this way, resource pool levels can be compared among different candidate combinations according to the screened seed resource pools, so that the seed resource pool with the lowest level among the screened seed resource pools corresponding to each candidate resource combination can be determined as the target resource pool.

[0248] The embodiment of the present disclosure shown in steps 2010 to 2020 can, when a candidate resource combination corresponds to multiple seed resource pools and the resource pool levels of these multiple seed resource pools are inconsistent, determine the target resource pool for satisfying the resource scheduling request from multiple seed resource pools based on the levels of the seed resource pools corresponding to each candidate resource combination, which helps to further reduce resource scheduling costs and improve resource scheduling efficiency.

[0249] Referring to an embodiment of the present disclosure provided in Figure 21, the levels of resource pool level A, resource pool level B, resource pool level C, and resource pool level D are increased in sequence, wherein the resource pools of resource pool level A include resource pool A1, resource pool A2, resource pool A3, etc., the resource pools of resource pool level B include resource pool B1, resource pool B2, resource pool B3, etc., the resource pools of resource pool level C include resource pool C1, resource pool C2, resource pool C3, etc., and the resource pools of resource pool level D include resource pool D1, resource pool D2, resource pool D3, etc.

[0250] The seed resource pool corresponding to the candidate resource combination A is included in the seed resource pool set A, including resource pool D1;

[0251] The seed resource pool corresponding to the candidate resource combination B is included in the seed resource pool set B, including resource pool A2, resource pool B3, and resource pool C4;

[0252] The seed resource pool corresponding to the candidate resource combination C is included in the seed resource pool set C, including resource pool B2, resource pool B4, and resource pool C1;

[0253] The seed resource pool corresponding to the candidate resource combination D is included in the seed resource pool set D, including resource pool C2, resource pool D2, and resource pool C3;

[0254] FIG21 shows an embodiment of how to determine a target resource pool when a candidate resource combination corresponds to multiple seed resource pools and the resource pool levels of the multiple seed resource pools are inconsistent. Specifically:

[0255] Candidate resource combination A corresponds to a single seed resource pool, namely resource pool D1, so the single seed resource pool can be used as the screened seed resource pool;

[0256] Candidate resource combination B corresponds to three seed resource pools: resource pool A2, resource pool B3, and resource pool C4. Therefore, the highest-level seed resource pool among these three seed resource pools, namely resource pool A2, is obtained as the seed resource pool after screening.

[0257] Candidate resource combination C corresponds to three seed resource pools: resource pool B2, resource pool B4, and resource pool C1. Therefore, the highest-level seed resource pool among these three seed resource pools, namely resource pool B2 and resource pool B4, is obtained as the seed resource pool after screening.

[0258] Candidate resource combination B corresponds to three seed resource pools: resource pool C2, resource pool D2, and resource pool C3. Therefore, the highest-level seed resource pool among these three seed resource pools, namely resource pool C2 and resource pool C3, is obtained as the seed resource pool after screening.

[0259] Furthermore, the seed resource pool with the lowest level among the screened seed resource pools corresponding to each candidate resource combination is determined as the target resource pool. Specifically, the seed resource pool with the lowest level among resource pool D1, resource pool A2, resource pool B2, resource pool B4, resource pool C2, and resource pool C3, that is, resource pool A2, is determined as the target resource pool. In this way, when the candidate resource combination corresponds to multiple seed resource pools and the resource pool levels of these multiple seed resource pools are not consistent, the target resource pool used to meet the resource scheduling request can be determined from multiple seed resource pools based on the levels of the seed resource pools corresponding to each candidate resource combination, which helps to further reduce resource scheduling costs and improve resource scheduling efficiency.

[0260] Detailed description of possible implementations before step 310

[0261] 22 , according to some embodiments provided by the present disclosure, before step 310 , the resource scheduling method of the embodiment of the present disclosure may further include, but is not limited to, the following steps 2210 to 2230 .

[0262] Step 2210, receiving resource scheduling requests for multiple tasks, the multiple tasks including a target task;

[0263] Step 2220, placing multiple tasks into a task queue;

[0264] Step 2230: Take out tasks in the order of the task queue from front to back, wherein the next task is taken out only after the previous task is completed.

[0265] Steps 2210 to 2230 are described in detail below.

[0266] In step 2210, resource scheduling requests for multiple tasks are received, including the target task. It should be noted that in many business scenarios, multiple tasks often require resource scheduling. In this case, it is necessary to first receive resource scheduling requests for multiple tasks so that resources can be scheduled for each task in subsequent steps.

[0267] In step 2220 to step 2230, multiple tasks are placed in a task queue and queued up, and tasks are taken out according to the order of the task queue from front to back, wherein, after the previous task taken out is completed, the next task is taken out. It should be noted that, considering that different tasks may use the same resources in the same resource pool, if each task is simultaneously scheduled in parallel for resources, it may cause resource competition and affect the efficiency of resource scheduling. For this reason, in the disclosed embodiment, multiple tasks need to be placed in a task queue and queued up, and tasks are taken out according to the order of the task queue from front to back, wherein, after the previous task taken out is completed, the next task is taken out.

[0268] The embodiment of the present disclosure illustrated by steps 2210 to 2230 receives resource scheduling requests for multiple tasks, including a target task, queues the multiple tasks in a task queue, and then removes the tasks from the task queue in a sequential order, wherein the next task is removed only after the previous task is completed. In this way, the tasks can be arranged into a serial queue, and resource scheduling is performed for each task in sequence, thereby further improving the efficiency of resource scheduling.

[0269] 23 , according to some embodiments provided by the present disclosure, step 2220 may include, but is not limited to, the following steps 2310 to 2320 .

[0270] Step 2310, determining a priority identifier of each of the plurality of tasks;

[0271] Step 2320: Arrange the multiple tasks into a task queue according to the priority identifiers.

[0272] Steps 2310 to 2320 are described in detail below.

[0273] In step 2310 to step 2320, determine the priority identifier of each task in the multiple tasks. Further, according to the priority identifier, the multiple tasks are arranged into a task queue. It should be noted that multiple tasks are queued for scheduling resources, and multiple tasks need to be placed in the task queue to queue. Among them, some tasks need to be executed first, and therefore need to be placed at the head of the task queue when queuing. It should be pointed out that the priority identifier of the task configuration is used to characterize the priority level corresponding to the current task, wherein the task with a higher priority level will be taken out first in the order of being arranged at the front in the task queue, and the task with a lower priority level will be taken out later in the order of being arranged at the back in the task queue.

[0274] In the embodiment of the present disclosure shown in steps 2310 to 2320, the priority identifier of each of the multiple tasks is first determined, and then the multiple tasks are arranged into a task queue based on the priority identifier. In this way, the order of resource scheduling can be reasonably determined according to the importance of different tasks, which can further improve the efficiency and flexibility of resource scheduling.

[0275] 24 , according to some embodiments provided by the present disclosure, after step 2220 , the resource scheduling method of the embodiment of the present disclosure may further include, but is not limited to, the following steps 2410 to 2440 .

[0276] Step 2410, determining the resource quantity of each resource required by the plurality of tasks in the task queue;

[0277] Step 2420 , for each resource, summing the resource quantities of the resource required by multiple tasks to obtain a first total resource quantity of the resource;

[0278] Step 2430: summing the number of resources of the type in the multi-level resource pools to obtain a second total number of resources of the type;

[0279] Step 2440: If the first total number of resources is greater than the second total number of resources, a replenishment request is sent to the backup resource library to replenish resources to the multi-level resource pool.

[0280] Steps 2410 to 2440 are described in detail below.

[0281] It should be noted that in some embodiments, it is necessary to first receive resource scheduling requests for multiple tasks, multiple tasks including the target task, and then queue up the multiple tasks in the task queue. Then, according to the order of the task queue from front to back, the tasks are taken out, wherein, after the previous task taken out is completed, the next task is taken out. In this process, if there is a shortage of resources in the multi-level resource pool, it is necessary to suspend the resource scheduling of the current task, wait for the resources of the multi-level resource pool to be replenished, and then the normal progress of resource scheduling can be restored. If the situation of resource scheduling suspending occurs, the resource scheduling efficiency for each task in the task queue will be reduced. In order to solve this problem, the disclosed embodiment provides the embodiment shown in step 2410 to step 2440.

[0282] In step 2410, determine the resource number of each type of resource required for a plurality of tasks in the task queue.It should be noted that, can comprise a plurality of tasks in the task queue, and each task needs the scheduling of multiple resources.Therefore, in order to clearly define the demand for resource of the task queue, need first determine the resource number of each type of resource required for a plurality of tasks in the task queue.

[0283] In step 2420, for each resource, the resource counts required by multiple tasks for that resource are summed to obtain a first total resource count for that resource. It should be noted that multiple tasks in the task queue may require the same resource. Therefore, for each resource, the resource counts required by multiple tasks for that resource are summed to obtain a first total resource count for that resource. It should be noted that the first total resource count may reflect the total demand for a particular resource by each task in the current task queue.

[0284] In step 2430, the resource counts of the resource of the type in the multi-level resource pool are summed to obtain a second total resource count for the resource of the type. It should be noted that in order to determine whether the multi-level resource pool has sufficient margin to cover the current task queue's needs, the resource counts of the resource of the type in the multi-level resource pool need to be summed to obtain the second total resource count for the resource of the type. It should be understood that the second total resource count may reflect the total margin of a certain resource in the current multi-level resource pool.

[0285] In step 2440, if the first total number of resources is greater than the second total number of resources, a supplement request is sent to the backup resource library to supplement resources to the multi-level resource pool. It should be noted that the first total number of resources reflects the total demand for a certain resource by each task in the current task queue, and the second total number of resources reflects the total surplus of a certain resource in the current multi-level resource pool. Therefore, if the first total number of resources is greater than the second total number of resources, it means that the multi-level resource pool has a relatively scarce storage surplus for this type of resource, and therefore it is necessary to send a supplement request to the backup resource library to supplement resources to the multi-level resource pool. It should be pointed out that the backup resource library is a resource storage unit outside the multi-level resource pool.

[0286] In the embodiment of the present disclosure illustrated by steps 2410 to 2440, if the first total resource quantity of a certain resource is greater than the second total resource quantity, the multi-level resource pool is determined to have insufficient storage capacity for that resource, and a replenishment request is then sent to the backup resource pool, causing the backup resource pool to replenish resources from the multi-level resource pool. This reduces the likelihood of resource scheduling being suspended, further improving resource scheduling efficiency.

[0287] In some specific embodiments, given that replenishing resources from the backup resource repository to the multi-level resource pool takes some time, replenishing the multi-level resource pool with storage resources exceeding the first total number of resources can further reduce the likelihood of resource scheduling interruptions. For example, if the first total number of resources is greater than the second total number of resources, specifically, if the second total number of resources is less than a multiple of the first total number of resources, it may be determined that a replenishment request needs to be sent to the backup resource repository, causing the backup resource repository to replenish resources from the multi-level resource pool.

[0288] 25 , according to some embodiments provided by the present disclosure, step 2440 may include, but is not limited to, the following steps 2510 to 2530 .

[0289] Step 2510, determining the difference between the first total number of resources and the second total number of resources;

[0290] Step 2520: Determine the number of supplementary resources based on the difference and the predetermined multiple;

[0291] Step 2530: Send a replenishment request to the standby resource library with the replenishment number of resources, so as to replenish the multi-level resource pool with the required number of resources.

[0292] Steps 2510 to 2530 are described in detail below.

[0293] In steps 2510 to 2530, the difference between the first total number of resources and the second total number of resources is first determined; further, based on the difference and the predetermined multiple, the number of supplementary resources is determined; further, a supplementary request is sent to the backup resource library with the number of supplementary resources to supplement the multi-level resource pool with the number of resources. It should be emphasized that, given that it takes some time for the backup resource library to supplement the multi-level resource pool with resources, supplementing the multi-level resource pool with storage resources that exceed the first total number of resources can further reduce the possibility of resource scheduling suspension. To this end, the embodiment of the present disclosure needs to first determine the difference between the first total number of resources and the second total number of resources, and then determine the corresponding number of supplementary resources based on the difference between the first total number of resources and the second total number of resources multiplied by the predetermined endorsement. On this basis, sending a supplementary request to the backup resource library with the number of supplementary resources can further reduce the possibility of resource scheduling suspension.

[0294] Some embodiments of the present disclosure provided with reference to FIG. 26 illustrate an optional implementation of sending a replenishment request to a backup resource repository for replenishing resources to a multi-level resource pool.

[0295] It should be noted that the task queue includes tasks A, B, C, and D, each of which requires target resources A, B, and C. For each resource, the resource counts required by multiple tasks are summed to obtain a first total resource count for that resource. It can be determined that the first total resource count for target resource A is 160, the first total resource count for target resource B is 59, and the first total resource count for target resource C is 76.

[0296] In addition, the multi-level resource pool also includes three resource pools: resource pool A, resource pool B, and resource pool C. It can be determined that the second total resource number of target resource A is 200, the second total resource number of target resource B is 200, and the second total resource number of target resource C is 230.

[0297] After determining the first and second total resource counts for various resources, it is necessary to further determine whether the first total resource count is greater than the second total resource count to determine whether a replenishment request needs to be sent to the backup resource pool. Since the first total resource counts of target resource A, target resource B, and target resource C are all greater than the second total resource counts, resource replenishment is required for all three resources.

[0298] Next, we determine the difference between the first and second total resource counts. The difference for target resource A is 60, the difference for target resource B is 59, and the difference for target resource C is 49. Note that the predetermined multiplier of 2 means that we need to replenish the multi-level resource pool with twice the amount of resources as the difference between the first and second total resource counts. Therefore, the replenishment number for target resource A is 120, the replenishment number for target resource B is 118, and the replenishment number for target resource C is 98.

[0299] A replenishment request is sent to the backup resource pool with the replenishment number 120 for target resource A, the replenishment number 118 for target resource B, and the replenishment number 98 for target resource C, so that the backup resource pool replenishes the corresponding number of resources from the multi-level resource pool. This further reduces the possibility of resource scheduling interruptions.

[0300] 27 , according to some embodiments provided by the present disclosure, the resource scheduling method of the present disclosure may be executed by a target computing node among multiple candidate computing nodes. The target computing node is selected from the multiple candidate computing nodes in the following manner:

[0301] Step 2710: Obtain processing capabilities of multiple candidate computing nodes;

[0302] Step 2720, obtaining the number of assigned tasks of the plurality of candidate computing nodes;

[0303] Step 2730 : Select a target computing node from multiple candidate computing nodes based on the processing capability and the number of assigned tasks.

[0304] Steps 2710 to 2730 are described in detail below.

[0305] In steps 2710 to 2730, the processing capabilities of multiple candidate computing nodes are first obtained, and then the number of assigned tasks of the multiple candidate computing nodes is obtained. Further, based on the processing capabilities and the number of assigned tasks, a target computing node is selected from the multiple candidate computing nodes. It should be noted that the computing node is used to provide the computing power required for the resource scheduling process. The candidate computing node refers to the computing node that is preset and may be selected to provide computing power for resource scheduling. The target computing node is selected from the multiple candidate computing nodes. Specifically, in order to select the target computing node from the multiple candidate computing nodes, it is necessary to first obtain the number of assigned tasks of the multiple candidate computing nodes, and then select the target computing node from the multiple candidate computing nodes based on the processing capabilities and the number of assigned tasks. The purpose is to determine the computing power currently available for the candidate computing node to be invested in the resource scheduling process based on the processing capability and the number of assigned tasks of a candidate computing node, so that the resource scheduling process can obtain more abundant computing power from the corresponding computing node, further improving the efficiency of resource scheduling.

[0306] 28 , according to some embodiments of the present disclosure, the target computing node includes a master target computing node and a slave target computing node, and the plurality of candidate computing nodes includes a first group of candidate computing nodes and a second group of candidate computing nodes. Step 2730 may include, but is not limited to, steps 2810 to 2820 described below.

[0307] Step 2810 , determining a primary target computing node from the first set of candidate computing nodes based on processing capabilities and the number of assigned tasks;

[0308] Step 2820: Determine a secondary target computing node from the second group of candidate computing nodes.

[0309] Steps 2810 to 2820 are described in detail below.

[0310] It should be emphasized that the target computing node is the computing node selected to provide computing power for resource scheduling. It should be noted that in an embodiment in which a target computing node is selected from multiple candidate computing nodes based on processing power and the number of assigned tasks, if the target computing node fails, it may cause the target computing node to have difficulty supporting the computing power required for resource scheduling, and its anti-interference ability and robustness may not perform well. To address this problem, the embodiment of the present disclosure provides an embodiment shown in steps 2810 to 2820.

[0311] In step 2810, a primary target computing node is determined from the first group of candidate computing nodes based on the processing capacity and the number of assigned tasks. It should be emphasized that according to the processing capacity and the number of assigned tasks of a candidate computing node, the computing power currently available for the candidate computing node to be invested in the resource scheduling process can be determined. In some embodiments, candidate computing nodes with better processing capacity or fewer assigned tasks can be determined as the first group of candidate computing nodes. On this basis, the primary target computing node is determined from the first group of candidate computing nodes based on the processing capacity and the number of assigned tasks, so that the primary target computing node can use more abundant computing power.

[0312] In step 2820, a secondary target compute node is determined from the second group of candidate compute nodes. Candidate compute nodes with average processing power or a large number of assigned tasks can be identified as the second group of candidate compute nodes. Based on this, a secondary target compute node is determined from the second group of candidate compute nodes, providing a backup solution for the primary target compute node. If the primary target compute node fails, the secondary target compute node can replace the primary target compute node and provide the necessary computing power for continued resource scheduling.

[0313] The embodiment of the present disclosure shown in steps 2810 to 2820 reduces the risk of loss of computing power support when some target computing nodes fail, and improves the anti-interference ability and robustness of the resource scheduling method in the embodiment of the present disclosure.

[0314] According to some more specific embodiments of the present disclosure, the target computing node can be configured with its corresponding attribute information. In the process of executing the resource scheduling method of the present disclosure through the target computing node, if the main target computing node fails, the slave target computing node with the same attribute information can be preferentially called to replace the main target computing node and put into use to provide the required computing power for the continuation of resource scheduling. Its purpose is to replace the target computing node with a slave target computing node with the same attribute information, which can reduce the adaptation cost brought about by the replacement process and reduce the possibility of compatibility problems. It should be understood that the attribute information may include various aspects of information such as the location information of the target computing node, system configuration information, processing capacity and number of assigned tasks.

[0315] In some more specific embodiments, the number of candidate computing nodes is periodically changed in the following manner:

[0316] Get the total number of tasks on the resource platform in the current cycle;

[0317] Determine the number of candidate computing nodes based on the total number of tasks.

[0318] It should be noted that multiple candidate computing nodes can be used simultaneously to respond to resource scheduling requests for different tasks respectively. Therefore, in order to flexibly respond to resource scheduling requests for different tasks, the number of candidate computing nodes in the embodiment of the present disclosure needs to be changed periodically. When there are fewer resource scheduling requests, the number of candidate computing nodes is reduced, and when there are more resource scheduling requests, the capacity of candidate computing nodes is expanded to meet computing needs. Therefore, it is necessary to first obtain the total number of tasks of the resource platform in the current cycle, and then determine the number of candidate computing nodes based on the total number of tasks. In this way, it is possible to flexibly respond to resource scheduling requests for different tasks.

[0319] 29 , according to some embodiments provided by the present disclosure, before step 310 , the resource scheduling method may further include, but is not limited to, the following steps 2910 to 2920 .

[0320] Step 2910: Obtain the resource pool water level information library, resource pool location information library, task resource relationship library, and computing instruction library;

[0321] Step 2920: Structure the resource pool water level information library into a water level model, structure the resource pool location information library into a distribution location model, structure the task resource relationship library into a resource model, and structure the computing instruction library into a computing model.

[0322] Step 310 may include, but is not limited to, step 2930 described below.

[0323] Step 2930: Calling the resource model through the computation model, and obtaining multiple candidate resource combinations corresponding to the target task in response to the resource scheduling request;

[0324] Step 320 searches the multi-level resource pools in order from the lowest level to the highest level, and may include, but is not limited to, the following step 2940 .

[0325] Step 2940: Determine the locations of resource pools at each level using the calculation model according to the distribution location model, and call the water level model to determine the seed resource pool corresponding to the candidate resource combination;

[0326] Step 330 determines a target resource pool for satisfying the resource scheduling request from a plurality of seed resource pools, and may include, but is not limited to, the following step 2950 .

[0327] Step 2950: Determine a target resource pool for satisfying the resource scheduling request from among multiple seed resource pools through a calculation model.

[0328] Steps 2910 to 2950 are described in detail below.

[0329] In step 2910, the resource pool water level information library, resource pool location information library, task resource relationship library and calculation instruction library are obtained. It should be noted that the resource pool water level information library is used to store the resource inventory information of resource pools at all levels. As resource scheduling continues, the resource inventory information in the resource pool will become less and less, that is, the water level of the resource pool is getting lower and lower. In some embodiments, the target task corresponds to a scheduling target location that needs to be filled with resources. The farther the distance between the location of the resource pool and the scheduling target location is, the greater the overhead brought by resource scheduling. Therefore, it is necessary to record the location of the resource pool in the resource pool location information library so that the location of the resource pool can be retrieved from the resource pool location information library when calculating the overhead. The task resource relationship library stores the correspondence between various tasks and the resources they require. The calculation instruction library stores the instructions required for calculation and processing of various types of data.

[0330] In step 2920, the resource pool water level information library is structured into a water level model, the resource pool location information library is structured into a distributed location model, the task resource relationship library is structured into a resource model, and the computation instruction library is structured into a computation model. It should be noted that the purpose of structuring the resource pool water level information library into a water level model, the resource pool location information library into a distributed location model, the task resource relationship library into a resource model, and the computation instruction library into a computation model is to facilitate computation nodes in calling required data from each model.

[0331] In step 2930, the resource model is called by the computation model to obtain multiple candidate resource combinations corresponding to the target task in response to the resource scheduling request. It should be noted that since the task-resource relationship library stores the correspondence between various tasks and their required resources, and the task-resource relationship library is structured as a resource model, in order to respond to the resource scheduling request for the target task, it is necessary to call the resource model by the computation model to obtain multiple candidate resource combinations corresponding to the target task, each candidate resource combination including at least one target resource required by the target task and the target resource quantity of the target resource.

[0332] In step 2940, the positions of resource pools at all levels are determined according to the distribution position model through the calculation model, and the water level model is called to determine the seed resource pool corresponding to the candidate resource combination. Since the calculation instruction library stores the instructions required for calculation and processing of various types of data, the resource pool location information library stores the locations of resource pools at all levels, and the resource pool water level information library is used to store resource inventory information of resource pools at all levels, and the resource pool water level information library is structured as a water level model, the resource pool location information library is structured as a distribution position model, and the calculation instruction library is structured as a calculation model. Therefore, it is necessary to determine the positions of resource pools at all levels according to the distribution position model through the calculation model, aiming to search for multiple levels of resource pools in order from low to high for each candidate resource combination based on at least one target resource and the number of target resources, and call the water level model to determine the seed resource pool corresponding to the candidate resource combination. It should be clarified that in some embodiments, the resource pool level of the resource pool is divided based on the distance between the location of the resource pool and the scheduling target location. The closer the distance between the location of the resource pool and the scheduling target location, the lower the corresponding resource pool level; the farther the distance between the location of the resource pool and the scheduling target location, the higher the corresponding resource pool level.

[0333] In step 2950, ​​the target resource pool for satisfying the resource scheduling request is determined from the multiple seed resource pools using the calculation model. It should be noted that the target resource pool for satisfying the resource scheduling request is determined from the multiple seed resource pools using the calculation model only after the seed resource pool corresponding to the candidate resource combination has been determined. Specifically, the target resource pool for satisfying the resource scheduling request is determined from the multiple seed resource pools using the calculation model based on the level of the seed resource pool corresponding to each candidate resource combination.

[0334] The embodiment of the present disclosure, illustrated through steps 2910 to 2950, ​​structures the resource scheduling method of the embodiment of the present disclosure into a resource scheduling method based on a water level model, a distribution location model, a resource model, and a computing model, based on the resource pool water level information library, the resource pool location information library, the task resource relationship library, and the computing instruction library. This method clearly defines the role of each model in the resource scheduling process. This facilitates the implementation of the resource scheduling method of the embodiment of the present disclosure.

[0335] Referring to FIG30 , which illustrates some embodiments of the present disclosure, a system architecture for applying the resource scheduling method of the present disclosure is shown. The resource scheduling system architecture shown in FIG30 includes a data information layer, a model processing layer, a resource scheduling calculation layer, a resource scheduling control layer, and an application layer. The following is a detailed description of each layer:

[0336] The data information layer is used to store various types of data and information required for resource scheduling, which may include, but not limited to, the resource pool water level information library, the resource pool location information library, the task resource relationship library, and the calculation instruction library.

[0337] The model processing layer extracts data from the data information layer and structures it so that the resource scheduling and computing layer can access the corresponding data. Specifically, the resource pool water level information library is structured into a water level model, the resource pool location information library is structured into a distribution location model, the task resource relationship library is structured into a resource model, and the computing instruction library is structured into a computing model.

[0338] The resource scheduling calculation layer is used to obtain demand information from the resource scheduling control layer and perform corresponding scheduling calculations under the guidance of the demand information. When the resource scheduling calculation layer performs calculations again, it will retrieve the corresponding data information from the resource scheduling calculation layer as the basis for calculation. It should be pointed out that the resource scheduling calculation layer can be divided into two parts, one for calculating resource demand and the other for calculating resource inventory. It should be understood that resource scheduling is essentially the process of allocating resource inventory to meet resource demand. Therefore, splitting the scheduling calculation of resource scheduling into two parts helps to fully utilize the computing power of the computing nodes.

[0339] The resource scheduling control layer can realize various functions such as resource scheduling, serial queues, asynchronous requests and water level checks. Resource scheduling refers to the resource scheduling method in the embodiment of the present disclosure being used as control logic in the resource scheduling control layer, and the specific implementation of the resource scheduling method needs to be combined with the computing power of the resource scheduling computing layer; serial queue refers to the consideration that different tasks may use the same resources in the same resource pool. If the resources are scheduled in parallel for each task at the same time, it may cause resource competition and affect the efficiency of resource scheduling. For this reason, in the embodiment of the present disclosure, multiple tasks need to be queued in the task queue and taken out in the order from front to back of the task queue. The next task is taken out only after the previous task is completed; asynchronous operation refers to the fact that the execution logic of each part in the embodiment of the present disclosure can be realized through asynchronous operation after decoupling; water level check refers to the fact that the resource scheduling control layer in the embodiment of the present disclosure can also detect the resource inventory of the multi-level resource pool to determine the scheduling plan for each type of resource and the replenishment operation for the multi-level resource pool.

[0340] Application layer: The embodiments of the present disclosure are applicable to multiple types of business scenarios. In different business scenarios, the tasks required to schedule resources can be issued at the application layer in the resource scheduling system architecture.

[0341] Referring to FIG31 , which provides some embodiments of the present disclosure, an example diagram of asynchronous operation in the embodiments of the present disclosure is shown. It should be emphasized that asynchronous operation means that the execution logic of each part of the embodiment of the present disclosure can be implemented through asynchronous operation after decoupling. In FIG31 , the execution logic of each part of the resource scheduling control layer is decoupled into different modules for implementation. Specifically:

[0342] A task parsing module is configured to obtain, in response to a resource scheduling request of a target task, a plurality of candidate resource combinations corresponding to the target task, each candidate resource combination including at least one target resource required by the target task and a target resource quantity of the target resource;

[0343] The resource configuration module is used to search multiple levels of resource pools in order from low to high for each candidate resource combination based on at least one target resource and the number of target resources to determine the seed resource pool corresponding to the candidate resource combination; further, according to the level of the seed resource pool corresponding to each candidate resource combination, determine the target resource pool used to meet the resource scheduling request in multiple seed resource pools.

[0344] A scheduling execution module is used to perform actual resource scheduling after determining the target resource pool for satisfying the resource scheduling request;

[0345] A log module, used to update a computer log recording system operation information according to the resource scheduling operations actually performed;

[0346] Alarm module, used to issue alarms when an emergency occurs in resource scheduling;

[0347] The resource statistics module is used to be triggered after resource scheduling is actually executed to update the resource inventory information in the multi-level resource pool according to the actually scheduled resources;

[0348] The inventory management module can be used to check whether the inventory of multi-level resource pools has reached a relatively scarce level, which is also the execution logic of the water level check;

[0349] The resource replenishment module is used to send a replenishment request to the backup resource library when the inventory of the multi-level resource pool reaches a relatively scarce level, so as to realize resource replenishment of the multi-level resource pool.

[0350] In this way, the execution logic of each part in the embodiment of the present disclosure can be implemented through asynchronous operations after decoupling, which clearly determines the role of each module in the resource scheduling process and facilitates the implementation of the resource scheduling method of the embodiment of the present disclosure.

[0351] 32 , some specific examples of the resource scheduling method are shown. It should be noted that a serial queue may include n tasks, namely, task 1, task 2, task 3, ..., task n.

[0352] In order to make the resource scheduling between different tasks free from competition, these n tasks are placed in a serial queue for resource scheduling in sequence. It should be clear that each task corresponds to several candidate matching combinations, among which task 1 includes candidate resource combination A, candidate resource combination B, candidate resource combination C, candidate resource combination D and other candidate resource combinations. And each candidate resource combination corresponds to several types of target resources, among which candidate resource combination A includes target resource a, target resource b, target resource c, target resource d, target resource e, target resource f, target resource g and other types of target resources. It should be pointed out that the target resources of each candidate resource combination in the candidate combination have their corresponding target resource numbers, which are used to indicate the number of target resources required to meet the target task. It should be understood that the process of parsing the target resources and their numbers in the candidate resource combination from the target task can be processed in parallel to improve computing efficiency.

[0353] After clarifying the target resources and target resource numbers of each candidate resource combination, the resource scheduling scheme can be configured. For each candidate resource combination, based on at least one target resource and target resource number, first select a seed resource pool from the low-level resource pool, and then select a seed resource pool from the penultimate resource pool. In this way, the multi-level resource pools are searched from low to high levels to determine the seed resource pool corresponding to the candidate resource combination. Furthermore, according to the level of the seed resource pool corresponding to each candidate resource combination, the target resource pool for satisfying the resource scheduling request is determined from the multiple seed resource pools. Specifically, the target resource pool can be determined based on the location of the multi-level resource pool, that is, the resource pool location selection; the target resource pool can also be determined based on the corresponding return amount of the resource pool; and the target resource pool can also be determined based on the number of discrete resources.

[0354] After determining the target resource pool, resource occupation can be performed based on the target resource pool to prevent the corresponding resources from being called by other tasks or processes. On this basis, the occupied resources can be allocated to the application layer to complete resource scheduling. It should be understood that the entire process from parsing the candidate resource combination from the target task to resource occupation and allocating resources to the application layer can be recorded in the log information. In this way, the efficiency of resource scheduling can be improved. The above solution can reasonably determine the target resource pool used to meet resource scheduling requests for more diverse application scenarios, so the flexibility of resource scheduling is relatively high.

[0355] Experimental data description of the embodiment of the present disclosure

[0356] In some more specific embodiments, for the goal of filling the material gap in equipment components at location A, the traditional resource scheduling method based on product numbers is used to schedule equipment components at other locations to fill the above-mentioned material gap, and the resource scheduling method of the embodiment of the present disclosure is used to schedule equipment components at other locations to fill the above-mentioned material gap.

[0357] In order to clarify the beneficial effects of the resource scheduling method in the embodiment of the present disclosure, the embodiment of the present disclosure compares the resource scheduling indicators of the two resource scheduling methods, see Table 1.

[0358] Table 1

[0359] It should be noted that the embodiment of the present disclosure specifically compares five resource scheduling indicators of the two resource scheduling methods, namely, matching speed, whether regional division is supported, whether distance is considered, whether supporting matching allocation, and warehousing efficiency.

[0360] Regarding the resource scheduling indicator of scheduling scheme matching speed, the scheduling scheme matching speed of the traditional resource scheduling method based on product number is at the hour level; while the scheduling scheme matching speed of the resource scheduling method of the embodiment of the present disclosure is at the minute level or second level. It can be clearly seen that the resource scheduling method of the embodiment of the present disclosure can improve the efficiency of resource scheduling. In some more specific embodiments, when performing nationwide resource scheduling for 500 C4 modules (a type of equipment component), the resource scheduling method of the embodiment of the present disclosure can increase the scheduling scheme matching speed from 2 hours to 10 seconds, and the matching efficiency is improved by about 99.86%.

[0361] Regarding the indicator of whether regional division is supported, the traditional resource scheduling method based on product numbers cannot determine the region associated with location A, and therefore cannot determine the storage warehouse where equipment components are stored from the associated region; however, the resource scheduling method of the disclosed embodiment can classify each storage warehouse based on the region associated with location A, and then search for multiple levels of storage warehouses as resource pools in order from low to high. It can be clearly seen that in the resource scheduling method of the disclosed embodiment, the selection of the region where the storage warehouse is located is closely related to the location of the material gap, so material gaps in different locations can have different resource scheduling plans, which improves the flexibility of resource scheduling.

[0362] Regarding whether distance is considered, traditional resource scheduling methods based on product numbers cannot determine which storage warehouses need to provide resources for scheduling based on their distance from the material shortage at location A. However, the resource scheduling method of the disclosed embodiment can classify each storage warehouse according to its distance from the material shortage at location A, and then search for storage warehouses in multiple levels as resource pools in order from low to high. In this way, storage warehouses closest to the material shortage can be identified and used for resource scheduling, which can save freight costs and improve resource scheduling efficiency.

[0363] Regarding whether matching allocation is supported, the traditional resource scheduling method based on product numbers cannot support matching resource scheduling. Taking the resource scheduling of equipment components as an example, there is often a matching correspondence between component models. If the models do not correspond, it is difficult to assemble and use them. Based on this, the resource scheduling method of the embodiment of the present disclosure can obtain candidate resource combinations corresponding to material gaps, and then determine the storage warehouse based on the candidate resource combinations, so as to realize the matching allocation of resources and improve the efficiency and flexibility of resource scheduling.

[0364] Regarding the efficiency of warehousing and outbound operations, traditional resource scheduling methods based on product numbers typically require two days to complete both the outbound and inbound operations for a single resource scheduling order. However, the resource scheduling method of the disclosed embodiment can complete both the outbound and inbound operations for a single resource scheduling order within one day. Clearly, the resource scheduling method of the disclosed embodiment can improve resource scheduling efficiency.

[0365] Description of the apparatus and device of the present disclosure

[0366] It is to be understood that, although the steps in the above-mentioned flowcharts are shown in sequence according to the arrow representations, these steps are not necessarily performed in sequence according to the order represented by the arrows. Unless otherwise specified in the present embodiment, there is no strict order restriction on the execution of these steps, and these steps can be performed in other orders. Moreover, at least a portion of the steps in the above-mentioned flowcharts may include multiple steps or multiple stages, and these steps or stages are not necessarily performed at the same time, but can be performed at different times, and the execution order of these steps or stages is not necessarily performed in sequence, but can be performed in turn or alternately with other steps or at least a portion of the steps or stages in other steps.

[0367] According to one aspect of the present disclosure, as shown in FIG33 , a resource scheduling apparatus 3300 is provided. The resource scheduling apparatus 3300 can be configured in the aforementioned resource scheduling server. The resource scheduling apparatus 3300 includes:

[0368] A first acquiring unit 3310 is configured to acquire, in response to a resource scheduling request of a target task, a plurality of candidate resource combinations corresponding to the target task, each candidate resource combination including at least one target resource required by the target task and a target resource quantity of the target resource;

[0369] The resource search unit 3320 is configured to search, for each candidate resource combination, resource pools in the multi-level resource pool in order from low to high based on the at least one target resource and the number of target resources and based on preset levels of the multi-level resource pool to determine a seed resource pool corresponding to the candidate resource combination;

[0370] The first determining unit 3330 is configured to determine a target resource pool for satisfying the resource scheduling request from a plurality of seed resource pools according to the levels of the seed resource pools corresponding to each candidate resource combination.

[0371] Optionally, each storage resource pool in the multi-level resource pool includes various storage resources of various general types, and the number of the storage resources under the various general types;

[0372] The resource search unit 3320 is specifically configured to:

[0373] For each candidate resource combination, based on the at least one target resource and the target number of resources, the resource pools in the multi-level resource pool are searched in order from low to high based on the preset levels of the multi-level resource pool. If the target number of resources for each target resource in one of the resource pools to be examined in the multi-level resource pool can be satisfied by the number of resources under a single general type, then the seed resource pool is determined in the resource pool to be examined.

[0374] Optionally, the resource search unit 3320 is specifically configured to:

[0375] If the number of the resource pool to be examined is one, determining the resource pool to be examined as the seed resource pool;

[0376] If the number of the resource pools to be examined is two or more, the seed resource pool is determined based on the levels of the two or more resource pools to be examined.

[0377] Optionally, the resource search unit 3320 is specifically configured to:

[0378] If the number of the resource pools to be examined is two or more, determining the resource pool to be examined with the lower level among the two or more resource pools to be examined as the seed resource pool;

[0379] If the number of the resource pools to be examined is two or more, and the levels of the two or more resource pools to be examined are the same, determining the scheduling return amounts of the two or more resource pools to be examined, and determining the seed resource pool based on the scheduling return amounts;

[0380] If the scheduling return amounts of the two or more resource pools to be examined are the same, the seed resource pool is determined based on the resource pool types of the two or more resource pools to be examined.

[0381] Optionally, the resource search unit 3320 is specifically configured to:

[0382] Obtaining resource container capacities of multiple resource containers of the resource pool to be examined;

[0383] sorting the plurality of resource containers from largest to smallest according to the capacity of the resource containers;

[0384] Determine the resource container at the top of the ranking as the resource container to be inspected, and determine the target number of resources as the number of unscheduled resources;

[0385] Executing a first process, the first process comprising: updating the number of unscheduled calls by modulo the capacity of the resource container of the resource container to be examined by the remainder of the number of unscheduled resources, updating the resource container to be examined by using the next resource container in the sorting, and repeating the first process until the resource container to be examined is empty;

[0386] The scheduling return amount is determined based on the number of unscheduled resources.

[0387] Optionally, the resource search unit 3320 is specifically configured to:

[0388] Obtaining the number of discrete resources in the resource pool to be examined;

[0389] If the number of discrete resources is greater than the number of unscheduled resources, determining the scheduling return amount to be 0;

[0390] If the number of discrete resources is not greater than the number of unscheduled resources, the scheduling return amount is obtained by subtracting the number of unscheduled resources from the resource container capacity of the resource container last in the sorting.

[0391] Optionally, the resource search unit 3320 is further configured to:

[0392] If any storage resource pool in the multi-level resource pool cannot satisfy the target resource quantity of each target resource with the number of resources under the single general type, then, among the storage resource pools at the lowest level, a storage resource pool having the smallest shortfall after satisfying the target resource quantity with the number of resources under the single general type is selected as the seed resource pool, and the single general type is used as the target general type, and the number of resources that is still unsatisfied after satisfying the target resource quantity with the number of resources under the single general type is used as the remaining resource quantity;

[0393] Among the other storage resource pools at the lowest level, select another storage resource pool with the smallest shortfall after using the number of resources under the target general type to satisfy the remaining number of resources, as the seed resource pool, and update the remaining number of resources with the number of resources that are still not satisfied after using the number of resources under the target general type to satisfy the remaining number of resources, until all the storage resource pools at the lowest level are traversed.

[0394] Optionally, the resource search unit 3320 is further configured to:

[0395] Execute the second process, which includes: if the number of remaining resources is still not 0 after traversing the storage resource pool of the lowest level, take the second to last level as the target level, and traverse the storage resource pool of the target level. Among the storage resource pools that have not been traversed, select one of the storage resource pools with the smallest missing amount after using the number of resources under the target general type to satisfy the number of remaining resources, and use it as a seed resource pool. Update the remaining resource number with the number of resources that is still not satisfied after using the number of resources under the target general type to satisfy the remaining resource number, until the storage resource pool of the target level is traversed, and update the target level with the level above the target level. Repeat the second process until the highest level is reached.

[0396] Optionally, the first determining unit 3330 is specifically configured to:

[0397] If each candidate resource combination corresponds to a seed resource pool, obtaining the level of the seed resource pool corresponding to each candidate resource combination;

[0398] The seed resource pool with the lowest level among the seed resource pools corresponding to each candidate resource combination is determined as the target resource pool.

[0399] Optionally, the first determining unit 3330 is specifically configured to:

[0400] If there are two or more seed resource pools of the lowest level, determining the scheduling return amounts of the two or more seed resource pools, and determining the target resource pool based on the scheduling return amounts;

[0401] If the scheduling return amounts of the two or more seed resource pools are the same, the target resource pool is determined based on the resource pool types of the two or more seed resource pools.

[0402] Optionally, the first determining unit 3330 is further specifically configured to:

[0403] If a portion of the candidate resource combinations corresponds to multiple seed resource pools, obtaining the seed resource pool with the highest level among the multiple seed resource pools as the screened seed resource pool; for another portion of the candidate resource combinations corresponding to a single seed resource pool, using the single seed resource pool as the screened seed resource pool;

[0404] The seed resource pool with the lowest level in the screened seed resource pools corresponding to each candidate resource combination is determined as the target resource pool.

[0405] Optionally, the resource scheduling device 3300 further includes:

[0406] a task receiving unit (not shown in FIG33 ), configured to receive the resource scheduling request for a plurality of tasks, the plurality of tasks including the target task;

[0407] A queue generating unit (not shown in FIG33 ), configured to place the plurality of tasks into a task queue;

[0408] The task extraction unit (not shown in FIG33 ) is used to extract the tasks in the order of the task queue from front to back, wherein the next task is extracted only after the previous task is completed.

[0409] Optionally, the queue generating unit (not shown in FIG33 ) is specifically configured to:

[0410] Determining a priority identifier for each of the plurality of tasks;

[0411] According to the priority identifier, the plurality of tasks are arranged into the task queue.

[0412] Optionally, the resource scheduling device 3300 further includes:

[0413] A second determining unit (not shown in FIG33 ) is configured to determine the number of each resource required by the plurality of tasks in the task queue;

[0414] A first calculation unit (not shown in FIG33 ) is configured to sum, for each resource, the number of resources of the resource type required by the plurality of tasks to obtain a first total number of resources of the resource type;

[0415] A second calculation unit (not shown in FIG33 ) is configured to sum the number of resources of the type in the multi-level resource pool to obtain a second total number of resources of the type;

[0416] A resource supplement unit (not shown in FIG33 ) is configured to send a supplement request to a backup resource library if the first total number of resources is greater than the second total number of resources, so as to supplement resources to the multi-level resource pool.

[0417] Optionally, the resource supplement unit (not shown in FIG33 ) is specifically configured to:

[0418] determining a difference between the first total number of resources and the second total number of resources;

[0419] determining an amount of supplementary resources based on the difference and a predetermined multiple;

[0420] A supplement request is sent to the standby resource library with the number of supplementary resources, so as to supplement the multi-level resource pool with resources of the number of supplementary resources.

[0421] Optionally, the resource scheduling method is performed by a target computing node among a plurality of candidate computing nodes, and the target computing node is selected from the plurality of candidate computing nodes in the following manner:

[0422] Obtaining the processing capabilities of the plurality of candidate computing nodes;

[0423] Obtaining the number of assigned tasks for the plurality of candidate computing nodes;

[0424] The target computing node is selected from a plurality of the candidate computing nodes based on the processing capability and the number of the assigned tasks.

[0425] Optionally, the number of candidate computing nodes is periodically changed in the following manner:

[0426] Get the total number of tasks on the resource platform in the current cycle;

[0427] The number of the candidate computing nodes is determined according to the total number of tasks.

[0428] Optionally, the resource scheduling device 3300 further includes:

[0429] The second acquisition unit is used to acquire the resource pool water level information library, the resource pool location information library, the task resource relationship library and the calculation instruction library;

[0430] A water level model construction unit (not shown in FIG33 ), configured to structure the resource pool water level information library into a water level model, structure the resource pool location information library into a distribution location model, structure the task resource relationship library into a resource model, and structure the calculation instruction library into a calculation model;

[0431] The first acquiring unit 3310 is specifically configured to:

[0432] Calling the resource model through the computing model, and obtaining a plurality of candidate resource combinations corresponding to the target task in response to the resource scheduling request;

[0433] The resource search unit 3320 is specifically configured to:

[0434] Determining the locations of the resource pools at each level according to the distribution location model through the calculation model, and calling the water level model to determine the seed resource pool corresponding to the candidate resource combination;

[0435] The first determining unit 3330 is specifically configured to:

[0436] A target resource pool for satisfying the resource scheduling request is determined from the plurality of seed resource pools through the calculation model.

[0437] Optionally, the resource search unit 3320 is specifically configured to:

[0438] receiving a call request for a target domain name of the water level model, wherein the target domain name is shared by the main water level model and the backup water level model;

[0439] If the main water level model operates normally, forwarding the call request to the main water level model for execution;

[0440] If the main water level model fails, the call request is forwarded to the backup water level model for execution.

[0441] 34 , which is a block diagram of a portion of a terminal 140 that implements the resource scheduling method for content recommendation according to an embodiment of the present disclosure. The terminal includes components such as a radio frequency (RF) circuit 3410, a memory 3415, an input unit 3430, a display unit 3440, a sensor 3450, an audio circuit 3460, a wireless fidelity (WiFi) module 3470, a processor 3480, and a power supply 3490. Those skilled in the art will appreciate that the terminal structure shown in FIG34 does not limit the structure to a mobile phone or a computer, and may include more or fewer components than shown, or combine certain components, or arrange the components differently.

[0442] The RF circuit 3410 may be used for receiving and sending signals during information transmission or calls. In particular, after receiving downlink information from the base station, it is sent to the processor 3480 for processing. In addition, the designed uplink data is sent to the base station.

[0443] The memory 3415 may be used to store software programs and modules. The processor 3480 executes various functional applications and data processing of the terminal by running the software programs and modules stored in the memory 3415 .

[0444] The input unit 3430 may be configured to receive input digital or character information and generate key signal input related to the terminal's settings and function control. Specifically, the input unit 3430 may include a touch panel 3431 and other input devices 3432 .

[0445] The display unit 3440 may be configured to display input information or provided information and various menus of the terminal. The display unit 3440 may include a display panel 3441 .

[0446] The audio circuit 3460 , the speaker 3461 , and the microphone 3462 may provide an audio interface.

[0447] In this embodiment, the processor 3480 included in the terminal can execute the resource scheduling method for content recommendation in the previous embodiment.

[0448] The terminals of the embodiments of the present disclosure include but are not limited to mobile phones, computers, intelligent voice interaction devices, smart home appliances, vehicle terminals, aircraft, etc. The embodiments of the present disclosure can be applied to various scenarios, including but not limited to artificial intelligence, big data, data processing, etc.

[0449] 35 , which is a block diagram of the structure of a portion of a server implementing the resource scheduling method for content recommendation according to an embodiment of the present disclosure. The server 110 may vary significantly due to different configurations or performance, and may include one or more central processing units (CPUs) 3522 (e.g., one or more processors) and memory 3532, and one or more storage media 3530 (e.g., one or more mass storage devices) storing application programs 3542 or data 3544. The memory 3532 and storage medium 3530 may be either short-term storage or persistent storage. The program stored in the storage medium 3530 may include one or more modules (not shown), each of which may include a series of instruction operations on the server 3500. Furthermore, the CPU 3522 may be configured to communicate with the storage medium 3530 to execute the series of instruction operations in the storage medium 3530 on the server 3500.

[0450] The server 3500 may also include one or more power supplies 3526, one or more wired or wireless network interfaces 3550, one or more input and output interfaces 3558, and / or one or more operating systems 3541, such as Windows Server 2003. TM , Mac OS X TM , Unix TM , Linux TM , FreeBSD TM etc.

[0451] The processor in the server 3500 can be used to execute the resource scheduling method for content recommendation according to an embodiment of the present disclosure.

[0452] The embodiments of the present disclosure further provide a computer-readable storage medium, which is used to store a computer program, and the computer program is used to execute the resource scheduling methods of the aforementioned embodiments.

[0453] The present disclosure also provides a computer program product, which includes a computer program. A processor of a computer device reads and executes the computer program, so that the computer device implements the resource scheduling method.

[0454] The terms "first," "second," "third," "fourth," and the like (if any) in the specification of the present disclosure and the accompanying drawings are used to distinguish similar objects and are not necessarily used to describe a particular order or precedence. It should be understood that the terms used in this manner are interchangeable where appropriate, so that the embodiments of the present disclosure described herein, for example, can be implemented in orders other than those illustrated or described herein. In addition, the terms "comprises" and "comprising," and any variations thereof, are intended to cover non-exclusive inclusions, e.g., a process, method, system, product, or apparatus comprising 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 process, method, product, or apparatus.

[0455] It should be understood that in the present disclosure, "at least one (item)" refers to one or more, and "plurality" refers to two or more. "And / or" is used to describe the association relationship of associated objects, indicating that three relationships may exist. For example, "A and / or B" can mean: only A exists, only B exists, and A and B exist at the same time, where A and B can be singular or plural. The character " / " generally indicates that the previous and next associated objects are in an "or" relationship. "At least one of the following items" or similar expressions refers to any combination of these items, including any combination of single items or plural items. For example, at least one of a, b or c can mean: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, c can be single or multiple.

[0456] It should be understood that in the description of the embodiments of the present disclosure, the meaning of multiple (or multiple items) is more than two, greater than, less than, exceed, etc. are understood to exclude the number itself, and above, below, within, etc. are understood to include the number itself.

[0457] In the several embodiments provided in the present disclosure, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of units is only a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.

[0458] Units described as separate components may or may not be physically separate, and components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.

[0459] In addition, the functional units in the various embodiments of the present disclosure may be integrated into a single processing unit, or each unit may exist physically separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or software functional units.

[0460] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present disclosure is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the various embodiments of the present disclosure. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk, and other media that can store program code.

[0461] It should also be understood that the various implementations provided in the embodiments of the present disclosure can be combined arbitrarily to achieve different technical effects.

[0462] The above is a specific description of the implementation methods of the present disclosure, but the present disclosure is not limited to the above implementation methods. Those skilled in the art can make various equivalent modifications or substitutions without violating the spirit of the present disclosure. These equivalent modifications or substitutions are all included in the scope defined by the claims of the present disclosure.

Claims

1. A resource scheduling method, the method being executed by a resource scheduling server, the method comprising: In response to a resource scheduling request of a target task, a plurality of candidate resource combinations corresponding to the target task are acquired, each of the candidate resource combinations comprising at least one target resource required by the target task and a target resource number of the target resource; For each of the candidate resource combinations, based on the at least one target resource and the number of target resources, searching each resource pool in the multi-level resource pool in order from low to high based on the preset levels of the multi-level resource pool to determine a seed resource pool corresponding to the candidate resource combination; According to the levels of the seed resource pools corresponding to the candidate resource combinations, a target resource pool for satisfying the resource scheduling request is determined from a plurality of the seed resource pools.

2. The resource scheduling method according to claim 1, wherein each storage resource pool in the multi-level resource pool comprises various storage resources of various general types and the number of resources of the storage resources under the various general types; The step of searching, for each candidate resource combination, resource pools in the multi-level resource pool in order from low to high based on the at least one target resource and the number of target resources and based on preset levels of the multi-level resource pools to determine a seed resource pool corresponding to the candidate resource combination includes: For each candidate resource combination, based on the at least one target resource and the target number of resources, the resource pools in the multi-level resource pool are searched in order from low to high based on the preset levels of the multi-level resource pools. If the target number of resources for each target resource in one of the resource pools to be examined in the multi-level resource pools can be satisfied by the number of resources under a single general type, then the seed resource pool is determined in the resource pool to be examined.

3. The resource scheduling method according to claim 2, wherein determining the seed resource pool in the resource pool to be examined comprises: If the number of the resource pools to be examined is one, determining the resource pool to be examined as the seed resource pool; If the number of the resource pools to be examined is two or more, the seed resource pool is determined based on the levels of the two or more resource pools to be examined.

4. The resource scheduling method according to claim 3, if the number of the resource pools to be examined is two or more, determining the seed resource pool based on the levels of the two or more resource pools to be examined comprises: If the number of the resource pools to be examined is two or more, determining the resource pool to be examined with a lower level among the two or more resource pools to be examined as the seed resource pool; If the number of the resource pools to be examined is two or more, and the levels of the two or more resource pools to be examined are the same, determine the scheduling return amounts of the two or more resource pools to be examined, and determine the seed resource pool based on the scheduling return amounts; If the scheduling return amounts of the two or more resource pools to be examined are the same, the seed resource pool is determined based on the resource pool types of the two or more resource pools to be examined.

5. The resource scheduling method according to claim 4, wherein determining the scheduling return amount of two or more resource pools to be investigated comprises: Obtaining resource container capacities of multiple resource containers of the resource pool to be examined; sorting the plurality of resource containers from large to small according to the capacity of the resource containers; Determine the resource container at the front of the sort as the resource container to be examined, and determine the target resource number as the number of unscheduled resources; Executing a first process, the first process comprising: updating the number of unscheduled calls by using the remainder of the number of unscheduled resources modulo the capacity of the resource container of the resource container to be examined, updating the resource container to be examined by using the next resource container in the sorting, and repeating the first process until the resource container to be examined is empty; The scheduling return amount is determined based on the number of unscheduled resources.

6. The resource scheduling method according to claim 5, wherein determining the scheduling return amount based on the number of unscheduled resources comprises: Obtaining the number of discrete resources in the resource pool to be examined; If the number of discrete resources is greater than the number of unscheduled resources, determining the scheduling return amount to be 0; If the number of discrete resources is not greater than the number of unscheduled resources, the scheduling return amount is obtained by subtracting the number of unscheduled resources from the resource container capacity of the resource container last in the sorting.

7. The resource scheduling method according to claim 1, wherein determining a target resource pool for satisfying the resource scheduling request from a plurality of the seed resource pools according to the levels of the seed resource pools corresponding to each of the candidate resource combinations comprises: If each of the candidate resource combinations corresponds to a seed resource pool, obtaining the level of the seed resource pool corresponding to each of the candidate resource combinations; The seed resource pool with the lowest level among the seed resource pools corresponding to each of the candidate resource combinations is determined as the target resource pool.

8. The resource scheduling method according to claim 7, wherein the step of determining the seed resource pool with the lowest level among the seed resource pools corresponding to each of the candidate resource combinations as the target resource pool comprises: If there are two or more seed resource pools of the lowest level, determine the scheduling return amounts of the two or more seed resource pools, and determine the target resource pool based on the scheduling return amounts; If the scheduling return amounts of the two or more seed resource pools are the same, the target resource pool is determined based on the resource pool types of the two or more seed resource pools.

9. The resource scheduling method according to claim 1, wherein determining a target resource pool for satisfying the resource scheduling request from a plurality of the seed resource pools according to the level of the seed resource pool corresponding to each of the candidate resource combinations further comprises: If a part of the candidate resource combinations corresponds to a plurality of the seed resource pools, the seed resource pool with the highest level among the plurality of the seed resource pools is obtained as the seed resource pool after screening, and for another part of the candidate resource combinations corresponding to a single seed resource pool, the single seed resource pool is used as the seed resource pool after screening; The seed resource pool with the lowest level in the screened seed resource pools corresponding to each of the candidate resource combinations is determined as the target resource pool.

10. The resource scheduling method according to claim 1, before obtaining a plurality of candidate resource combinations corresponding to the target task in response to the resource scheduling request of the target task, the resource scheduling method further comprises: receiving the resource scheduling request of a plurality of tasks, the plurality of tasks including the target task; Put a plurality of the tasks into a task queue; The tasks are taken out in the order of the task queue from front to back, wherein the next task is taken out only after the previous task is completed.

11. The resource scheduling method according to claim 10, wherein the step of placing the plurality of tasks in a task queue comprises: Determining a priority identifier of each of the plurality of tasks; According to the priority identifier, the plurality of tasks are arranged into the task queue.

12. The resource scheduling method according to claim 10, after placing the plurality of tasks in a task queue, the resource scheduling method further comprises: Determine the number of resources of each resource required by the plurality of tasks in the task queue; For each resource, summing up the number of resources of the resource required by a plurality of tasks to obtain a first total number of resources of the resource; Adding the number of resources of the type in the multi-level resource pool to obtain a second total number of resources of the type; If the first total number of resources is greater than the second total number of resources, a replenishment request is sent to a backup resource repository to replenish resources to the multi-level resource pool.

13. The resource scheduling method according to claim 1, wherein the resource scheduling method is performed by a target computing node among a plurality of candidate computing nodes, and the target computing node is selected from the plurality of candidate computing nodes in the following manner: Obtaining the processing capabilities of the plurality of candidate computing nodes; Obtaining the number of assigned tasks of the plurality of candidate computing nodes; The target computing node is selected from a plurality of the candidate computing nodes based on the processing capability and the number of the assigned tasks.

14. The resource scheduling method according to claim 13, wherein the target computing node comprises a master target computing node and a slave target computing node, and the plurality of candidate computing nodes comprises a first group of candidate computing nodes and a second group of candidate computing nodes; The selecting the target computing node from the plurality of candidate computing nodes based on the processing capability and the number of the assigned tasks comprises: Based on the processing capacity and the number of assigned tasks, the primary target computing node is determined from the first group of candidate computing nodes, and the secondary target computing node is determined from the second group of candidate computing nodes.

15. The resource scheduling method according to claim 13, wherein the number of candidate computing nodes is periodically changed in the following manner: Get the total number of tasks on the resource platform in the current cycle; The number of the candidate computing nodes is determined according to the total number of tasks.

16. The resource scheduling method according to claim 1, before obtaining a plurality of candidate resource combinations corresponding to the target task in response to the resource scheduling request of the target task, the resource scheduling method further comprises: Obtain resource pool water level information library, resource pool location information library, task resource relationship library and computing instruction library; The resource pool water level information library is structured into a water level model, the resource pool location information library is structured into a distribution location model, the task resource relationship library is structured into a resource model, and the calculation instruction library is structured into a calculation model. type; The step of obtaining, in response to the resource scheduling request of the target task, a plurality of candidate resource combinations corresponding to the target task comprises: Calling the resource model through the computing model, and obtaining a plurality of candidate resource combinations corresponding to the target task in response to the resource scheduling request; The searching of the multi-level resource pools in order from low level to high level includes: Determine the positions of the resource pools at each level according to the distribution position model through the calculation model, and call the water level model to determine the seed resource pool corresponding to the candidate resource combination; The determining of a target resource pool for satisfying the resource scheduling request from among the plurality of seed resource pools comprises: By using the calculation model, a target resource pool for satisfying the resource scheduling request is determined from the plurality of seed resource pools.

17. A resource scheduling device, comprising: A first acquisition unit is used to respond to a resource scheduling request of a target task and acquire a plurality of candidate resource combinations corresponding to the target task, each of the candidate resource combinations comprising at least one target resource required by the target task and a target resource number of the target resource; A resource search unit, configured to search, for each of the candidate resource combinations, the resource pools in the multi-level resource pool in order from low to high based on the at least one target resource and the number of target resources and based on the preset levels of the multi-level resource pools, so as to determine a seed resource pool corresponding to the candidate resource combination; The first determining unit is configured to determine, according to the level of the seed resource pool corresponding to each of the candidate resource combinations, a target resource pool for satisfying the resource scheduling request from among the plurality of seed resource pools.

18. An electronic device comprising a memory and a processor, wherein the memory stores a computer program, and the processor implements the resource scheduling method according to any one of claims 1 to 16 when executing the computer program.

19. A computer-readable storage medium storing a computer program, wherein the computer program, when executed by a processor, implements the resource scheduling method according to any one of claims 1 to 16.

20. A computer program product, comprising a computer program, wherein the computer program is read and executed by a processor of a computer device, so that the computer device executes the resource scheduling method according to any one of claims 1 to 16.