Task scheduling method, device and system, and computer readable storage medium

By setting global and user blacklists in the scheduling device and dynamically managing the blacklists based on the execution results of the execution device, the problem of low scheduling success rate in distributed task scheduling systems is solved, and more efficient task allocation and resource utilization are achieved.

CN113703930BActive Publication Date: 2026-01-23HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202010432608.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-05-20
Publication Date
2026-01-23
Estimated Expiration
2040-05-20

AI Technical Summary

Technical Problem

In a distributed task scheduling system, the failure of execution devices leads to a low scheduling success rate and wastes resources.

Method used

Set up a global blacklist and a user blacklist in the scheduling device. Determine the performance of the execution device by receiving its running results. Add or remove items from the blacklist to avoid task assignment and improve the scheduling success rate.

Benefits of technology

It improves the scheduling success rate of the task scheduling system, avoids task failures caused by equipment failure or performance issues, and saves resource allocation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113703930B_ABST
    Figure CN113703930B_ABST
Patent Text Reader

Abstract

The application discloses a task scheduling method, device and system, and a computer readable storage medium, and belongs to the technical field of computers. A scheduling device receives a task scheduling request sent by a first user, and the task scheduling request comprises a task to be scheduled. The scheduling device determines one or more target execution devices running the task to be scheduled based on a target blacklist, the target blacklist comprising a global blacklist and / or a user blacklist, and the target execution devices are not in the global blacklist and a user blacklist corresponding to the first user. The scheduling device allocates the task to be scheduled to the one or more target execution devices. By setting the global blacklist and / or the user blacklist in the scheduling device, an execution device with a fault or a performance problem is added to the global blacklist, and an execution node with a failure in running a task submitted by a certain user for multiple times is added to the user blacklist corresponding to the user, so that the scheduling success rate of the task scheduling system can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to a task scheduling method, apparatus and system, and computer-readable storage medium. Background Technology

[0002] A distributed task scheduling system generally refers to a system that executes tasks on a computer using time-triggered or event-triggered methods. A distributed task scheduling system includes a scheduler and executors. The scheduler allocates tasks to the executors, and the executors run the tasks allocated by the scheduler. In a distributed task scheduling system, the scheduler can break down a task into multiple subtasks and distribute these subtasks to multiple executors for synchronous execution, thereby improving the efficiency of task execution within the system.

[0003] In a distributed task scheduling system, subtasks running on execution devices may fail. When a subtask fails, the scheduling device determines that the subtask has failed to be scheduled and needs to reassign it to another execution device. Currently, distributed task scheduling systems typically set a threshold for the number of task failures. When the scheduling device detects that the number of failed subtasks of a task running on an execution device has reached the threshold, the scheduling device will add that execution device to the task's blacklist, meaning the scheduling device will no longer reassign subtasks of that task to that execution device.

[0004] However, in a distributed task scheduling system, the execution device on the blacklist of a certain task may have performance problems. When the execution device runs subtasks of other tasks, it will also fail, resulting in a low scheduling success rate of the distributed task scheduling system. Summary of the Invention

[0005] This application provides a task scheduling method, apparatus, system, and computer-readable storage medium, which can solve the problem of low scheduling success rate in distributed task scheduling systems.

[0006] Firstly, a task scheduling method is provided. The method includes: a scheduling device receiving a task scheduling request sent by a first user, the task scheduling request including a task to be scheduled; the scheduling device determining one or more target execution devices to run the task to be scheduled based on a target blacklist, the target blacklist including a global blacklist and / or a user blacklist, wherein the target execution device is not in the global blacklist and is not in the user blacklist corresponding to the first user; and the scheduling device assigning the task to be scheduled to the one or more target execution devices.

[0007] In this application, by setting a global blacklist in the scheduling device, when an execution device malfunctions or has performance issues that prevent it from running tasks, it is added to the global blacklist. The scheduling device will then not assign tasks to that execution device subsequently, thus preventing task failures and improving the scheduling success rate of the task scheduling system. Similarly, by setting a user blacklist in the scheduling device, since tasks submitted by the same user are often similar, the scheduling device can add execution nodes that have repeatedly failed to run tasks submitted by a particular user to that user's corresponding user blacklist. This prevents the scheduling device from assigning tasks submitted by the same user to that execution device subsequently, thus preventing task failures and improving the scheduling success rate of the task scheduling system.

[0008] Optionally, the target blacklist includes a global blacklist. The method further includes: the scheduling device receiving a global blacklist addition request sent by the first execution device, the global blacklist addition request including the device identifier of the first execution device. Based on the global blacklist addition request, the scheduling device adds the first execution device to the global blacklist.

[0009] Optionally, the process of the scheduling device adding the first execution device to the global blacklist based on the global blacklist addition request includes: the scheduling device sending a first test task to the first execution device. When the first execution device fails to run the first test task, the scheduling device adds the first execution device to the global blacklist. When the first execution device successfully runs the first test task, the scheduling device does not add the first execution device to the global blacklist.

[0010] In this application, after receiving a global blacklist addition request from the execution device, the scheduling device sends a test task to the execution device and ultimately determines whether to add the execution device to the global blacklist based on the execution device's performance on the test task. By double-checking the execution device's performance before adding it to the global blacklist, the scheduling device improves the accuracy of the blacklist scheme and avoids adding the execution device to the global blacklist due to temporary malfunctions.

[0011] Optionally, the target blacklist includes a user blacklist. The method further includes: the scheduling device receiving a user blacklist addition request sent by the second execution device, the user blacklist addition request including the device identifier of the second execution device and the user identifier of the second user. Based on the user blacklist addition request, the scheduling device adds the second execution device to the user blacklist corresponding to the second user.

[0012] Optionally, the process of the scheduling device adding the second execution device to the user blacklist corresponding to the second user based on the user blacklist addition request includes: the scheduling device sending a second test task to the second execution device. When the second execution device fails to run the second test task, the scheduling device adds the second execution device to the user blacklist corresponding to the second user. When the second execution device successfully runs the second test task, the scheduling device does not add the second execution device to the user blacklist corresponding to the second user.

[0013] In this application, after receiving a user blacklist addition request from the execution device, the scheduling device sends a test task to the execution device and ultimately determines whether to add the execution device to the user blacklist based on the execution device's performance on the test task. By double-checking the execution device's operational performance before adding it to the user blacklist, the scheduling device improves the accuracy of the blacklist scheme and avoids adding the execution device to the user blacklist due to temporary malfunctions.

[0014] Optionally, when a third execution device exists in any blacklist of the target blacklist for a duration that reaches the target duration, the scheduling device deletes the third execution device from that blacklist.

[0015] Secondly, a task scheduling method is provided. This method includes: an execution device acquiring historical task execution results within a target time period; the execution device determining, based on the historical task execution results, whether the execution device meets the conditions for joining a target blacklist, whereby the target blacklist includes a global blacklist and / or a user blacklist, and the target blacklist is used by a scheduling device for task scheduling; and when the execution device meets the conditions for joining the target blacklist, the execution device sending a target blacklist addition request to the scheduling device.

[0016] Optionally, the process of determining whether an execution device meets the conditions for joining a target blacklist based on historical task execution results includes: the execution device determining the number of failed subtasks among all subtasks run by the execution device within a target time period based on historical task execution results; when the number of failed subtasks among all subtasks is greater than or equal to a first failure number threshold, and / or the ratio of the number of failed subtasks to the total number of subtasks is greater than or equal to a first failure ratio threshold, the execution device determines that the execution device meets the conditions for joining a global blacklist.

[0017] Optionally, the process of determining whether the execution device meets the conditions for joining the target blacklist based on the historical task execution results includes: the execution device determining the number of failed subtasks among all subtasks corresponding to the target user run by the execution device within the target time period based on the historical task execution results; when the number of failed subtasks among all subtasks corresponding to the target user is greater than or equal to a second failure number threshold, and / or the ratio of the number of failed subtasks among all subtasks corresponding to the target user to the total number of subtasks corresponding to the target user is greater than or equal to a second failure ratio threshold, the execution device determines that the execution device meets the conditions for joining the user blacklist corresponding to the target user.

[0018] Optionally, the target blacklist includes a global blacklist and a user blacklist. The process of determining whether an execution device meets the conditions for joining the target blacklist based on historical task execution results includes: the execution device determining whether it meets the conditions for joining the global blacklist based on historical task execution results. When the execution device does not meet the conditions for joining the global blacklist, the execution device determines whether it meets the conditions for joining the user blacklist.

[0019] In this application, the execution device first determines whether it meets the conditions for joining the global blacklist. When it is determined that the execution device does not meet the conditions for joining the global blacklist, it then determines whether it meets the conditions for joining the user blacklist. This avoids the execution device having to determine whether it meets the conditions for joining the individual user blacklists when it meets the conditions for joining the global blacklist, thus saving the execution device's computing resources.

[0020] Thirdly, a task scheduling device is provided for scheduling equipment. The device includes multiple functional modules that interact to implement the methods described in the first aspect and its various embodiments. The multiple functional modules can be implemented using software, hardware, or a combination of both, and can be arbitrarily combined or divided based on specific implementations.

[0021] Fourthly, a task scheduling device is provided for executing equipment. The device includes multiple functional modules that interact to implement the methods described in the second aspect and its various embodiments. The multiple functional modules can be implemented using software, hardware, or a combination of both, and can be arbitrarily combined or divided based on specific implementations.

[0022] Fifthly, a scheduling device is provided, comprising: a processor and a memory;

[0023] The memory is used to store computer programs, the computer programs including program instructions;

[0024] The processor is used to invoke the computer program to implement the task scheduling method as described in any of the first aspects.

[0025] In a sixth aspect, an execution device is provided, comprising: a processor and a memory;

[0026] The memory is used to store computer programs, the computer programs including program instructions;

[0027] The processor is used to invoke the computer program to implement the task scheduling method as described in any of the second aspects.

[0028] In a seventh aspect, a task scheduling system is provided, comprising: a scheduling device and an execution device, wherein the scheduling device comprises a task scheduling apparatus as described in the third aspect or a scheduling device as described in the fifth aspect, and the execution device comprises a task scheduling apparatus as described in the fourth aspect or an execution device as described in the sixth aspect.

[0029] Eighthly, a computer-readable storage medium is provided, on which instructions are stored, which, when executed by a processor of a computer device, implement the task scheduling method as described in the first aspect and its embodiments or the second aspect and its embodiments.

[0030] In a ninth aspect, a chip is provided, the chip including programmable logic circuitry and / or program instructions, which, when the chip is running, implement the task scheduling method as described in the first aspect and its embodiments or the second aspect and its embodiments.

[0031] The beneficial effects of the technical solution provided in this application include at least the following:

[0032] By setting a global blacklist in the scheduling device, when an execution device malfunctions or has performance issues that prevent it from running tasks, it is added to the global blacklist. The scheduling device will then not assign tasks to that execution device subsequently, preventing task failures and thus improving the scheduling success rate of the task scheduling system. Similarly, by setting a user blacklist in the scheduling device, since tasks submitted by the same user often have similarities, the scheduling device can add execution nodes that have repeatedly failed to run tasks submitted by a particular user to that user's corresponding user blacklist. This prevents the scheduling device from assigning tasks submitted by that user to that execution device subsequently, thus preventing task failures and improving the scheduling success rate of the task scheduling system. Furthermore, the global blacklist and user blacklist are complementary. The global blacklist can address scenarios where execution devices do not meet the conditions for joining every user's user blacklist, but the overall task performance is poor. The user blacklist can be set for specific task execution requirements of a user, preventing the addition of execution devices that do not meet the requirements of a user's submitted tasks to the global blacklist, thus avoiding resource waste. In addition, after receiving a blacklist addition request from the execution device, the scheduling device sends a test task to the execution device and ultimately determines whether to add the execution device to the blacklist based on the execution device's performance on the test task. By double-checking the execution device's operational performance before adding it to the blacklist, the scheduling device improves the accuracy of the blacklist scheme and avoids adding the device to the blacklist due to temporary malfunctions. Attached Figure Description

[0033] Figure 1 This is a schematic diagram of the structure of a task scheduling system provided in an embodiment of this application;

[0034] Figure 2 This is a flowchart illustrating a task scheduling method provided in an embodiment of this application;

[0035] Figure 3 This is a flowchart illustrating a method for maintaining a target blacklist in a scheduling device, as provided in an embodiment of this application.

[0036] Figure 4 This is a schematic diagram of the execution device provided in this application periodically acquiring historical task execution results based on a window detection mechanism;

[0037] Figure 5 This is a schematic diagram of a scenario provided by an embodiment of this application, in which an execution device obtains the historical task execution results within a time window;

[0038] Figure 6This is a schematic diagram of another scenario provided by an embodiment of this application, in which an execution device obtains the historical task execution results within a time window;

[0039] Figure 7 This is a schematic diagram of the structure of a task scheduling device provided in an embodiment of this application;

[0040] Figure 8 This is a schematic diagram of another task scheduling device provided in an embodiment of this application;

[0041] Figure 9 This is a block diagram of a task scheduling device provided in an embodiment of this application. Detailed Implementation

[0042] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.

[0043] Figure 1 This is a schematic diagram of the structure of a task scheduling system provided in an embodiment of this application. For example... Figure 1 As shown, the task scheduling system includes a scheduling device 101 and execution devices 102A-102E (collectively referred to as execution device 102). The scheduling device 101 and the execution device 102 can be connected via a wired network or a wireless network. Figure 1 The number of execution devices is for illustrative purposes only and is not intended to limit the task scheduling system provided in the embodiments of this application.

[0044] Optionally, the task scheduling system provided in this application embodiment is a distributed task scheduling system, which is a business cluster system composed of multiple servers. For example, this task scheduling system can be a distributed computing (Hadoop) Yet Another Resource Negotiator (YARN) system. YARN is a distributed task scheduling system and also a general resource management system that can provide unified resource management and task scheduling for upper-layer applications.

[0045] The scheduling device 101, also known as a scheduler or scheduling node, can be a single server, a server cluster consisting of several servers, or a cloud computing service center. The scheduling device 101 is responsible for resource management and task scheduling of the entire cluster system. The scheduling device 101 can decompose user-submitted tasks into subtasks and then distribute the subtasks to idle execution devices 102 for execution. If a subtask fails, the scheduling device 101 reschedules it. Submitting a task to the scheduling device refers to submitting a task for a specific application to the scheduling device; this task is used to implement the application's business functions. A subtask is the smallest scheduling unit in the task scheduling system; a task can typically be broken down into multiple subtasks, each subtask implementing a specific function within the application.

[0046] The execution device 102, also known as an execution node, can be a single server, a server cluster consisting of several servers, or a cloud computing service center. The execution device 102 possesses resources such as a central processing unit (CPU), memory, and disk. The execution device 102 can utilize its own resources to run tasks or subtasks assigned by the scheduling device 101. The resources on the execution device 102 can be a Java Virtual Machine (JVM) or a container, etc.

[0047] In this embodiment of the application, the scheduling device 101 can be a single device, or a designated execution device or an elected execution device among multiple execution devices 102.

[0048] Figure 2 This is a flowchart illustrating a task scheduling method provided in an embodiment of this application. This method can be used for, for example... Figure 1 The task scheduling system shown. (For example...) Figure 2 As shown, the method includes:

[0049] Step 201: The scheduling device receives a task scheduling request sent by the first user, which includes the task to be scheduled.

[0050] Optionally, when the scheduling device receives a task to be scheduled submitted by the first user, the scheduling device determines that it has received a task scheduling request sent by the first user. The first user can be any user capable of sending a task scheduling request to the scheduling device. The task to be scheduled is used to implement the business function of a specific application.

[0051] Optionally, the task scheduling request may also include a user identifier for the first user, which is used to uniquely identify the first user in the task scheduling system. For example, the user identifier for the first user may be the login account of the application corresponding to the task to be scheduled.

[0052] Step 202: The scheduling device determines one or more target execution devices to run the scheduled task based on the target blacklist.

[0053] The target blacklist includes a global blacklist and / or a user blacklist; that is, the target blacklist includes the global blacklist, or the target blacklist includes the user blacklist, or the target blacklist includes both the global blacklist and the user blacklist. Optionally, the target blacklist includes one or more user blacklists, each corresponding to one user. The target execution device is not in the global blacklist, and the target execution device is not in the user blacklist corresponding to the first user. The target execution device refers to the execution device determined by the scheduling device to run the scheduled task.

[0054] Optionally, the global blacklist includes the device identifier of the execution device. The device identifier of the execution device may be the Media Access Control (MAC) address of the execution device, or the universally unique identifier (UUID) of the execution device, or other information that can be used to uniquely identify the execution device. Table 1 shows the global blacklist provided in the embodiments of this application.

[0055] Table 1

[0056] Global Blacklist Actuating device 1 Execution device 4 …

[0057] For example, see Table 1, the global blacklist includes execution device 1 and execution device 4.

[0058] Optionally, the user blacklist includes a user identifier and the corresponding device identifier of the execution device. Table 2 shows the user blacklist provided in the embodiments of this application.

[0059] Table 2

[0060]

[0061] For example, referring to Table 2, the user blacklist corresponding to user a includes execution device 2 and execution device 6. The user blacklist corresponding to user b includes execution device 3 and execution device 8.

[0062] Optionally, the target blacklist includes a global blacklist and a user blacklist corresponding to the first user. When the scheduling device receives a task scheduling request sent by the first user, the scheduling device checks whether each execution device in the task scheduling system is in the global blacklist and / or the user blacklist corresponding to the first user, and obtains one or more execution devices as target execution devices from the execution devices in the task scheduling system that are not in the global blacklist and not in the user blacklist corresponding to the first user. The scheduling device can use all execution devices in the task scheduling system that are not in the global blacklist and not in the user blacklist corresponding to the first user as target execution devices, or the scheduling device can randomly obtain several execution devices as target execution devices from the execution devices in the task scheduling system that are not in the global blacklist and not in the user blacklist corresponding to the first user. This embodiment of the application does not limit this.

[0063] For example, see references such as Figure 1 In the task scheduling system shown, assuming that the global blacklist includes execution device 102A and the user blacklist corresponding to the first user includes execution device 102C, the scheduling device will use one or more of execution devices 102B, 102D and 102E as the target execution device.

[0064] Optionally, the target blacklist also includes a task blacklist. In this case, the target execution device mentioned above is also not in the task blacklist corresponding to the task to be scheduled. Optionally, the task blacklist includes the task identifier and the device identifier of the corresponding execution device.

[0065] In this embodiment of the application, after receiving a task scheduling request sent by a first user, the scheduling device splits the task to be scheduled in the task scheduling request into multiple sub-tasks, and determines multiple target execution devices to run the multiple sub-tasks in the task scheduling system, so that the multiple sub-tasks can run in parallel on multiple target execution devices, thereby improving the running efficiency of the task to be scheduled.

[0066] Step 203: The scheduling device assigns the tasks to be scheduled to one or more target execution devices.

[0067] Optionally, the scheduling device breaks down the task to be scheduled into multiple subtasks and assigns these subtasks to one or more target execution devices for execution. When the scheduling device receives successful execution results from each target execution device for all assigned subtasks, the scheduling device determines that the task to be scheduled has been completed. Optionally, when the scheduling device receives a failure result from a target execution device for an assigned subtask, or when the scheduling device does not receive a result from a target execution device for an assigned subtask within a target time period after subtask assignment, the scheduling device determines that the target execution device failed to execute the assigned subtask. In this case, the scheduling device then reassigns the subtask, for example, to another target execution device.

[0068] For example, see references such as Figure 1 The task scheduling system shown assumes that the target execution devices include execution devices 102B, 102D, and 102E. The scheduling device breaks down the task to be scheduled into subtasks 1, 2, and 3. The scheduling device assigns subtask 1 to execution device 102B, subtask 2 to execution device 102D, and subtask 3 to execution device 102E. When the scheduling device receives successful execution results from execution devices 102B (for subtask 1), 102D (for subtask 2), and 102E (for subtask 3), the scheduling device determines that the task to be scheduled has been completed.

[0069] In this embodiment, because the scheduling device has a target blacklist, which includes a global blacklist and / or a user blacklist, after receiving a task submitted by a user, the scheduling device can determine one or more target execution devices from those not in the global blacklist and not in the user's corresponding user blacklist, and assign the task to the target execution device. By setting a global blacklist in the scheduling device, when an execution device malfunctions or has performance issues that prevent it from running a task, it is added to the global blacklist. The scheduling device will then not assign tasks to that execution device subsequently, avoiding task failures caused by task assignment and thus improving the scheduling success rate of the task scheduling system. Similarly, by setting a user blacklist in the scheduling device, since tasks submitted by the same user are often similar, the scheduling device can add execution nodes that have repeatedly failed to run a user's submitted task to that user's corresponding user blacklist. The scheduling device will then not assign the user's submitted task to that execution device subsequently, avoiding task failures caused by task assignment and thus improving the scheduling success rate of the task scheduling system.

[0070] Optionally, the target blacklist in the scheduling device is updated based on the task execution results of the execution device. This application embodiment provides an implementation method for maintaining a target blacklist in the scheduling device, such as... Figure 3 As shown, the implementation process includes:

[0071] Step 301: The execution device obtains the historical task execution results of the execution device within the target time period.

[0072] Optionally, the execution device periodically acquires the historical task execution results within a target time period. This acquisition period can be half the duration of the target time period. Alternatively, the execution device acquires the historical task execution results within the target time period at a specified time. The target time period is a period preceding the time the execution device acquires the historical task execution results, and its duration can be manually set.

[0073] In this embodiment of the application, the execution device can periodically obtain the results of historical task execution based on a window detection mechanism. For example, Figure 4 This is a schematic diagram illustrating how the execution device provided in this application periodically acquires historical task execution results based on a window detection mechanism. For example... Figure 4 As shown, the execution device periodically slides a distance of 1 / 2 window length and obtains the historical task execution results within each time window at the right vertex of that time window.

[0074] Optionally, the historical task execution results of the execution device within the target time period include: the total number of all subtasks executed by the execution device within the target time period, the number of subtasks that failed to run by the execution device within the target time period (i.e., the number of failed subtasks among all subtasks executed by the execution device within the target time period), the total number of all subtasks corresponding to each user executed by the execution device within the target time period, and / or, the number of subtasks corresponding to each user that failed to run by the execution device within the target time period (i.e., the number of failed subtasks among all subtasks executed by the execution device within the target time period). Here, a subtask that failed to run by the execution device (i.e., a failed subtask) refers to a task that the execution device did not complete within the specified duration. All subtasks executed by the execution device within the target time period include subtasks that ran successfully (i.e., successful subtasks) and subtasks that failed to run within the target time period.

[0075] For example, please continue to see Figure 4The execution device runs subtasks corresponding to users 1, 2, and 3. At time t3, the execution device retrieves the historical task execution results within time window W1, where time window W1 starts at time t1 and ends at time t3; at time t4, it retrieves the historical task execution results within time window W2, where time window W2 starts at time t2 and ends at time t4; at time t5, it retrieves the historical task execution results within time window W3, where time window W3 starts at time t3 and ends at time t5; and so on. The interval between two adjacent times is equal to half the window length.

[0076] In this embodiment, the execution device obtains the historical task execution results based on the window detection mechanism, which makes full use of the temporal correlation of tasks and can accurately predict the execution results of subsequent sub-tasks. Moreover, the solution is simple and easy to implement.

[0077] Step 302: Based on the historical task execution results, the execution device determines whether it meets the conditions for being added to the target blacklist.

[0078] In a first optional embodiment of this application, the target blacklist includes a global blacklist. The implementation process of step 302 includes: the execution device determining the number of failed subtasks among all subtasks run by the execution device within the target time period based on historical task execution results. When the number of failed subtasks among all subtasks is greater than or equal to a first failure number threshold, and / or the ratio of the number of failed subtasks to the total number of subtasks is greater than or equal to a first failure ratio threshold, the execution device determines that the execution device meets the conditions for being added to the global blacklist.

[0079] For example, the threshold for the first number of failures is 10, and the threshold for the first failure rate is 70%. Figure 5 This is a schematic diagram illustrating a scenario where an execution device acquires historical task execution results within a time window, as provided in an embodiment of this application. Assume the execution device malfunctions at time t2'. Figure 5As shown, at time t3, the execution device obtains the historical task execution results within time window W1: the total number of subtasks executed by the execution device within time window W1 is 11, and the number of failed subtasks among all subtasks is 6. Since the number of failed subtasks (6) is less than the first failure threshold (10), and 6 / 11 = 54% < 70%, the execution device determines that it does not meet the conditions for adding to the global blacklist at time t3. At time t4, the execution device obtains the historical task execution results within time window W2: the total number of subtasks executed by the execution device within time window W2 is 10, and the number of failed subtasks among all subtasks is 10. Since the number of failed subtasks (10) is equal to the first failure threshold (10), and 10 / 10 = 100% > 70%, the execution device determines that it meets the conditions for adding to the global blacklist at time t4.

[0080] In a second optional embodiment of this application, the target blacklist includes a user blacklist. The implementation process of step 302 includes: the execution device determining, based on historical task execution results, the number of failed subtasks among all subtasks corresponding to the target user run by the execution device within the target time period. When the number of failed subtasks among all subtasks corresponding to the target user is greater than or equal to a second failure number threshold, and / or, the ratio of the number of failed subtasks to the total number of subtasks corresponding to the target user is greater than or equal to a second failure ratio threshold, the execution device determines that the execution device meets the conditions for adding to the user blacklist corresponding to the target user. The target user is any user corresponding to a subtask running on the execution device.

[0081] For example, the second failure number threshold is 3, and the second failure ratio threshold is 70%. Figure 6 This is a schematic diagram illustrating another scenario provided by an embodiment of this application, where an execution device obtains historical task execution results within a time window. Assume that at time t2', a partially mounted disk is unmounted from the execution device, and the task submitted by user 1 requires reading and writing a large amount of data, while the tasks submitted by users 2 and 3 do not require reading and writing a large amount of data. Figure 6As shown, at time t3, the execution device obtains the historical task execution results within time window W1 as follows: the execution device runs 4 sub-tasks corresponding to user 1 within time window W1, and the number of failed sub-tasks among all sub-tasks corresponding to user 1 is 2; the execution device runs 4 sub-tasks corresponding to user 2 within time window W1, and the number of failed sub-tasks among all sub-tasks corresponding to user 2 is 0; the execution device runs 3 sub-tasks corresponding to user 3 within time window W1, and the number of failed sub-tasks among all sub-tasks corresponding to user 3 is 0. Since the number of failed sub-tasks (2) among all sub-tasks corresponding to user 1 is less than the second failure threshold (3), and 2 / 4 = 50% < 70%, the execution device determines that at time t3, the execution device does not meet the conditions for adding user 1 to the user blacklist; similarly, the execution device determines that at time t3, the execution device does not meet the conditions for adding user 2 and user 3 to the user blacklists. At time t4, the execution device obtains the historical task execution results within time window W2 as follows: Within time window W1, the execution device ran 3 subtasks corresponding to user 1, and the number of failed subtasks among all subtasks corresponding to user 1 was 3; within time window W1, the execution device ran 4 subtasks corresponding to user 2, and the number of failed subtasks among all subtasks corresponding to user 2 was 0; within time window W1, the execution device ran 3 subtasks corresponding to user 3, and the number of failed subtasks among all subtasks corresponding to user 3 was 0. Since the number of failed subtasks corresponding to user 1 (3) is equal to the second failure threshold (3), and 3 / 3 = 100% > 70%, the execution device determines that at time t4, it meets the condition for adding user 1 to the user blacklist; similarly, the execution device determines that at time t4, it does not meet the condition for adding user 2 and user 3 to the user blacklists.

[0082] In a third optional embodiment of this application, the target blacklist includes a global blacklist and a user blacklist. The implementation process of step 302 includes: the execution device determining, based on historical task execution results, whether the execution device meets the conditions for joining the global blacklist. When the execution device does not meet the conditions for joining the global blacklist, the execution device determines whether the execution device meets the conditions for joining the user blacklist.

[0083] In this embodiment, the execution device first determines whether it meets the conditions for joining the global blacklist. When it is determined that the execution device does not meet the conditions for joining the global blacklist, it then determines whether it meets the conditions for joining the user blacklist. This avoids the execution device having to determine whether it meets the conditions for joining the individual user blacklists when it meets the conditions for joining the global blacklist, thus saving the execution device's computing resources.

[0084] Of course, the execution device may first check whether it meets the conditions for adding to the user blacklist, and then check whether it meets the conditions for adding to the global blacklist; or, the execution device may simultaneously check whether it meets the conditions for adding to the user blacklist and whether it meets the conditions for adding to the global blacklist. This application embodiment does not limit this approach. The implementation process of the execution device determining whether it meets the conditions for adding to the global blacklist can refer to the first optional embodiment described above, and the implementation process of the execution device determining whether it meets the conditions for adding to the user blacklist can refer to the second optional embodiment described above. This application embodiment will not elaborate further here.

[0085] Step 303: When the conditions for adding to the target blacklist are met, the executing device sends a target blacklist addition request to the scheduling device.

[0086] Optionally, when an execution device meets the conditions for joining the global blacklist, the execution device sends a global blacklist addition request to the scheduling device, the global blacklist addition request including the device identifier of the execution device. For example, referring to the example in the first optional embodiment of step 302, the execution device sends a global blacklist addition request to the scheduling device at time t4.

[0087] Optionally, when the execution device meets the conditions for adding the target user to the user blacklist, the execution device sends a user blacklist addition request to the scheduling device. The user blacklist addition request includes the device identifier of the execution device and the user identifier of the target user. For example, referring to the example in the second optional embodiment in step 302, the execution device sends a user blacklist addition request to the scheduling device at time t4. The user blacklist addition request includes the user identifier of user 1.

[0088] Step 304: The scheduling device adds the execution device to the target blacklist based on the target blacklist addition request.

[0089] In one possible implementation, the scheduling device receives a global blacklist addition request from the first execution device, the request including the device identifier of the first execution device. Based on the global blacklist addition request, the scheduling device adds the first execution device to the global blacklist.

[0090] Optionally, the process by which the scheduling device adds the first execution device to the global blacklist based on the global blacklist addition request includes: the scheduling device sending a first test task to the first execution device. When the first execution device fails to run the first test task, the scheduling device adds the first execution device to the global blacklist. When the first execution device successfully runs the first test task, the scheduling device does not add the first execution device to the global blacklist.

[0091] Optionally, when the first execution device fails to run the first test task, the first execution device sends a request to the scheduling device to confirm adding it to the global blacklist. This request to confirm adding it to the global blacklist may be the result of the failure of the first test task. The first test task may be a historical subtask corresponding to any user running in the task scheduling system.

[0092] In another possible implementation, the scheduling device receives a user blacklist addition request from the second execution device. This request includes the device identifier of the second execution device and the user identifier of the second user. Based on this request, the scheduling device adds the second execution device to the user blacklist corresponding to the second user.

[0093] Optionally, the process by which the scheduling device adds the second execution device to the user blacklist corresponding to the second user based on the user blacklist addition request includes: the scheduling device sending a second test task to the second execution device. When the second execution device fails to run the second test task, the scheduling device adds the second execution device to the user blacklist corresponding to the second user. When the second execution device successfully runs the second test task, the scheduling device does not add the second execution device to the user blacklist corresponding to the second user.

[0094] Optionally, when the second execution device fails to run the second test task, the second execution device sends a request to the scheduling device to confirm adding the user to the blacklist corresponding to the second user. This request to confirm adding the user to the blacklist corresponding to the second user may be the result of the failure of the second test task. The second test task may be a historical subtask corresponding to the second user.

[0095] In this embodiment, after receiving a blacklist addition request from the execution device, the scheduling device sends a test task to the execution device and ultimately determines whether to add the execution device to the blacklist based on the execution device's performance on the test task. By double-checking the execution device's performance before adding it to the blacklist, the scheduling device improves the accuracy of the blacklist scheme and avoids adding the execution device to the blacklist due to temporary malfunctions.

[0096] Optionally, the first execution device and the second execution device mentioned above can be the same execution device or different execution devices, and the embodiments of this application do not limit this.

[0097] Step 305: When a third execution device exists in any blacklist of the target blacklist for a duration that reaches the target duration, the scheduling device deletes the third execution device from any blacklist.

[0098] In this embodiment, the global blacklist and user blacklist can be dynamically updated based on the task execution results of the execution device. Both the global blacklist and user blacklist have a time limit; when the duration for which an execution device has been added to the global blacklist or user blacklist reaches a target duration, the scheduling device removes the execution device from the global blacklist or user blacklist.

[0099] Optionally, the global blacklist and user blacklist in the scheduling device can also be updated automatically by the scheduling device based on the task execution results reported by the execution device. For example, the scheduling device can obtain the historical task execution results of the execution device within the target time period, and based on the historical task execution results, determine whether the execution device meets the conditions for joining the target blacklist. After determining that the execution device meets the conditions for joining the target blacklist, the execution device is added to the target blacklist. In this case, the execution device may not need to execute steps 301 to 303 above.

[0100] It should be noted that the order of steps in the task scheduling method provided in this application embodiment can be appropriately adjusted, and the steps can also be added or removed as appropriate. Any variation methods that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the protection scope of this application, and therefore will not be elaborated further.

[0101] In summary, the task scheduling method provided in this application embodiment, due to the presence of a target blacklist in the scheduling device (including a global blacklist and / or a user blacklist), allows the scheduling device, upon receiving a task submitted by a user, to determine one or more target execution devices from those not in the global blacklist and not in the user's corresponding user blacklist, and then assign the task to the target execution device. By setting a global blacklist in the scheduling device, when an execution device malfunctions or has performance issues preventing it from running a task, it is added to the global blacklist, preventing the scheduling device from subsequently assigning tasks to that execution device and thus avoiding task failures caused by task assignment, thereby improving the scheduling success rate of the task scheduling system. Similarly, by setting a user blacklist in the scheduling device, since tasks submitted by the same user are often similar, the scheduling device can add execution nodes that have repeatedly failed to run a user's submitted task to that user's corresponding user blacklist, preventing the scheduling device from subsequently assigning the user's submitted task to that execution device, thus avoiding task failures caused by task assignment, and further improving the scheduling success rate of the task scheduling system. In addition, global blacklists and user blacklists can complement each other. Global blacklists can solve the scenario where the execution devices do not meet the conditions for adding each user to the user blacklist, but the overall task performance is poor. User blacklists can set up blacklists for specific task execution requirements of a user, avoiding the waste of resources caused by adding execution devices that do not meet the tasks submitted by a user to the global blacklist.

[0102] Figure 7 This is a schematic diagram of a task scheduling device provided in an embodiment of this application. This device can be used for, for example... Figure 1 The scheduling device 101 in the task scheduling system shown. For example... Figure 7 As shown, the device 70 includes:

[0103] The receiving module 701 is used to receive a task scheduling request sent by a first user, which includes a task to be scheduled.

[0104] Processing module 702 is used to determine one or more target execution devices that will run the scheduled task based on a target blacklist. The target blacklist includes a global blacklist and / or a user blacklist. The target execution device is not in the global blacklist, and the target execution device is not in the user blacklist corresponding to the first user.

[0105] The sending module 703 is used to assign tasks to be scheduled to one or more target execution devices.

[0106] Optionally, the target blacklist includes a global blacklist. The receiving module 701 is further configured to receive a global blacklist addition request sent by the first execution device, the global blacklist addition request including the device identifier of the first execution device; the processing module 702 is further configured to add the first execution device to the global blacklist based on the global blacklist addition request.

[0107] Optionally, the processing module 702 is further configured to: send a first test task to the first execution device through the sending module; add the first execution device to the global blacklist when the first execution device fails to run the first test task; and not add the first execution device to the global blacklist when the first execution device successfully runs the first test task.

[0108] Optionally, the target blacklist includes a user blacklist. The receiving module 701 is further configured to receive a user blacklist addition request sent by the second execution device. The user blacklist addition request includes the device identifier of the second execution device and the user identifier of the second user. The processing module 702 is further configured to add the second execution device to the user blacklist corresponding to the second user based on the user blacklist addition request.

[0109] Optionally, the processing module 702 is further configured to: send a second test task to the second execution device through the sending module; add the second execution device to the user blacklist corresponding to the second user when the second execution device fails to run the second test task; and not add the second execution device to the user blacklist corresponding to the second user when the second execution device successfully runs the second test task.

[0110] Optionally, the processing module 702 is further configured to: delete the third execution device in any blacklist when there is a third execution device in any blacklist whose duration in any blacklist reaches the target duration.

[0111] In summary, in the task scheduling device provided in this application embodiment, by setting a global blacklist in the scheduling device, when an execution device malfunctions or has performance issues that prevent it from running a task, the execution device is added to the global blacklist. The scheduling device will then not assign tasks to that execution device subsequently, thus preventing task failure and improving the scheduling success rate of the task scheduling system. Furthermore, by setting a user blacklist in the scheduling device, since tasks submitted by the same user are often similar, the scheduling device can add execution nodes that have repeatedly failed to run tasks submitted by a particular user to the user's corresponding user blacklist. The scheduling device will then not assign tasks submitted by that user to that execution device subsequently, thus preventing task failure and improving the scheduling success rate of the task scheduling system.

[0112] Figure 8 This is a schematic diagram of another task scheduling device provided in an embodiment of this application. This device can be used for, for example... Figure 1 The execution device 102 in the task scheduling system shown. For example... Figure 8 As shown, the device 80 includes:

[0113] The acquisition module 801 is used to acquire the historical task execution results of the execution device within the target time period.

[0114] The processing module 802 is used to determine whether the execution device meets the conditions for being added to the target blacklist based on the historical task execution results. The target blacklist includes a global blacklist and / or a user blacklist, which is used by the scheduling device for task scheduling.

[0115] The sending module 803 is used to send a target blacklist addition request to the scheduling device when the execution device meets the conditions for adding to the target blacklist.

[0116] Optionally, the processing module 802 is configured to: determine the number of failed subtasks among all subtasks run by the execution device within the target time period based on the historical task execution results; and determine that the execution device meets the conditions for being added to the global blacklist when the number of failed subtasks among all subtasks is greater than or equal to a first failure number threshold, and / or the ratio of the number of failed subtasks among all subtasks to the total number of all subtasks is greater than or equal to a first failure ratio threshold.

[0117] Optionally, the processing module 802 is configured to: determine the number of failed subtasks among all subtasks corresponding to the target user run by the execution device within the target time period based on the historical task execution results; and determine that the execution device meets the conditions for adding the target user to the user blacklist when the number of failed subtasks among all subtasks corresponding to the target user is greater than or equal to a second failure number threshold, and / or the ratio of the number of failed subtasks among all subtasks corresponding to the target user to the total number of subtasks corresponding to the target user is greater than or equal to a second failure ratio threshold.

[0118] Optionally, the target blacklist includes a global blacklist and a user blacklist. The processing module is used to: determine whether the execution device meets the conditions for joining the global blacklist based on the historical task execution results; and determine whether the execution device meets the conditions for joining the user blacklist when the execution device does not meet the conditions for joining the global blacklist.

[0119] In summary, in the task scheduling device provided in this application embodiment, by setting a global blacklist in the scheduling device, when an execution device malfunctions or has performance issues that prevent it from running a task, the execution device is added to the global blacklist. The scheduling device will then not assign tasks to that execution device subsequently, thus preventing task failure and improving the scheduling success rate of the task scheduling system. Furthermore, by setting a user blacklist in the scheduling device, since tasks submitted by the same user are often similar, the scheduling device can add execution nodes that have repeatedly failed to run tasks submitted by a particular user to the user's corresponding user blacklist. The scheduling device will then not assign tasks submitted by that user to that execution device subsequently, thus preventing task failure and improving the scheduling success rate of the task scheduling system.

[0120] Regarding the apparatus in the above embodiments, the specific manner in which each module performs its operation has been described in detail in the embodiments related to the method, and will not be elaborated upon here.

[0121] This application provides a scheduling device, including: a processor and a memory;

[0122] The memory is used to store computer programs, the computer programs including program instructions;

[0123] The processor is used to call the computer program to implement the actions performed by the scheduling device in the above method embodiment.

[0124] This application provides an execution device, including: a processor and a memory;

[0125] The memory is used to store computer programs, the computer programs including program instructions;

[0126] The processor is used to call the computer program to implement the actions performed by the execution device in the above method embodiment.

[0127] For example, Figure 9 This is a block diagram of a task scheduling apparatus provided in an embodiment of this application. The data stream receiving apparatus can be a scheduling device or an execution device. Figure 9 As shown, the task scheduling device 90 includes a processor 901 and a memory 902.

[0128] Memory 902 is used to store computer programs, the computer programs including program instructions;

[0129] The processor 901 is used to call the computer program to implement the actions performed by the scheduling device or the execution device in the above method embodiments.

[0130] Optionally, the task scheduling device 90 further includes a communication bus 903 and a communication interface 904.

[0131] The processor 901 includes one or more processing cores, and the processor 901 executes various functional applications and data processing by running computer programs.

[0132] The memory 902 can be used to store computer programs. Optionally, the memory can store the operating system and application program units required for at least one function. The operating system can be a real-time operating system (RTX), Linux, UNIX, Windows, or OS X.

[0133] There can be multiple communication interfaces 904, which are used to communicate with other devices. For example, in this embodiment, when the task scheduling device 90 is a scheduling device, the communication interface 904 can be used to send subtasks of the task to be scheduled to the execution device.

[0134] The memory 902 and the communication interface 904 are connected to the processor 901 via the communication bus 903.

[0135] This application provides a task scheduling system, including: a scheduling device and an execution device, wherein the scheduling device includes, for example: Figure 7 or Figure 9 The task scheduling device shown includes, for example, the execution device. Figure 8 or Figure 9 The task scheduling device shown.

[0136] This application also provides a computer-readable storage medium storing instructions that, when executed by a processor of a computer device, implement the actions performed by the scheduling device or the execution device in the above method embodiments.

[0137] Those skilled in the art will understand that all or part of the steps of the above embodiments can be implemented by hardware or by a program instructing related hardware. The program can be stored in a computer-readable storage medium, such as a read-only memory, a disk, or an optical disk.

[0138] In the embodiments of this application, the terms "first," "second," and "third" are used for descriptive purposes only and should not be construed as indicating or implying relative importance.

[0139] In this application, the term "and / or" is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, or B existing alone. Additionally, the character " / " in this document generally indicates that the preceding and following related objects have an "or" relationship.

[0140] The above description is merely an optional embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the concept and principles of this application should be included within the protection scope of this application.

Claims

1. A task scheduling method, characterized in that, The method for scheduling devices includes: Receive a task scheduling request sent by a first user, wherein the task scheduling request includes a task to be scheduled; Based on a target blacklist, one or more target execution devices are determined to run the scheduled task. The target blacklist includes a task blacklist, a global blacklist, and a user blacklist. The target execution device is not in the global blacklist, is not in the user blacklist corresponding to the first user, and is not in the task blacklist corresponding to the scheduled task. The one or more target execution devices include all execution devices in the task scheduling system that are not in the global blacklist, not in the user blacklist corresponding to the first user, and not in the task blacklist corresponding to the scheduled task, or include one or more execution devices randomly selected from all execution devices. The execution devices in the target blacklist are added after the execution device meets the conditions for joining the target blacklist based on historical task execution results. The historical task execution results are obtained by the execution device periodically sliding a time window and acquiring the historical task execution results of the execution device within the current time window after each slide. The scheduled task is assigned to one or more target execution devices.

2. The method according to claim 1, characterized in that, The method further includes: Receive a global blacklist addition request sent by the first execution device, wherein the global blacklist addition request includes the device identifier of the first execution device; Based on the global blacklist addition request, the first execution device is added to the global blacklist.

3. The method according to claim 2, characterized in that, The step of adding the first execution device to the global blacklist based on the global blacklist addition request includes: Send the first test task to the first execution device; When the first execution device fails to run the first test task, the first execution device is added to the global blacklist; When the first execution device successfully runs the first test task, the first execution device is not added to the global blacklist.

4. The method according to any one of claims 1 to 3, characterized in that, The method further includes: Receive a user blacklist addition request sent by the second execution device, wherein the user blacklist addition request includes the device identifier of the second execution device and the user identifier of the second user; Based on the user blacklist addition request, the second execution device is added to the user blacklist corresponding to the second user.

5. The method according to claim 4, characterized in that, The step of adding the second execution device to the user blacklist corresponding to the second user based on the user blacklist addition request includes: Send the second test task to the second execution device; When the second execution device fails to run the second test task, the second execution device will be added to the user blacklist corresponding to the second user. When the second execution device successfully runs the second test task, the second execution device is not added to the user blacklist corresponding to the second user.

6. The method according to any one of claims 1 to 3, or 5, characterized in that, The method further includes: When a third execution device exists in any blacklist of the target blacklist for a duration that reaches the target duration, the third execution device in any blacklist is deleted.

7. The method according to claim 4, characterized in that, The method further includes: When a third execution device exists in any blacklist of the target blacklist for a duration that reaches the target duration, the third execution device in any blacklist is deleted.

8. A task scheduling method, characterized in that, The method, used for performing a device, includes: The time window is periodically slid, and the historical task execution results of the execution device within the target time period are obtained after each sliding. The target time period is the time period corresponding to the current time window after each sliding. Based on the historical task execution results, it is determined whether the execution device meets the conditions for being added to the target blacklist. The target blacklist includes a task blacklist, a global blacklist, and a user blacklist. The target blacklist is used by the scheduling device for task scheduling. When the execution device meets the conditions for joining the target blacklist, it sends a target blacklist addition request to the scheduling device; wherein, The step of determining whether the execution device meets the conditions for joining the target blacklist includes: determining whether the execution device meets the conditions for joining the global blacklist based on the historical task execution results; and, if the execution device meets the conditions for joining the global blacklist, determining whether the execution device meets the conditions for joining the user blacklist based on the historical task execution results. The method further includes: The system receives a task to be scheduled from the scheduling device. The task to be scheduled is a task of the first user. The execution device is not in the global blacklist, the execution device is not in the user blacklist corresponding to the first user, and the execution device is not in the task blacklist corresponding to the task to be scheduled.

9. The method according to claim 8, characterized in that, The step of determining whether the execution device meets the conditions for being added to the global blacklist based on the historical task execution results includes: Based on the historical task execution results, determine the number of failed subtasks among all subtasks executed by the execution device during the target time period; When the number of failed subtasks in all subtasks is greater than or equal to a first failure number threshold, and / or the ratio of the number of failed subtasks to the total number of subtasks is greater than or equal to a first failure ratio threshold, the execution device is determined to meet the conditions for being added to the global blacklist.

10. The method according to claim 8 or 9, characterized in that, The step of determining whether the execution device meets the conditions for being added to the user blacklist based on the historical task execution results includes: Based on the historical task execution results, determine the number of failed subtasks among all subtasks corresponding to the target user run by the execution device during the target time period; When the number of failed subtasks in all subtasks corresponding to the target user is greater than or equal to the second failure number threshold, and / or the ratio of the number of failed subtasks in all subtasks corresponding to the target user to the total number of subtasks corresponding to the target user is greater than or equal to the second failure ratio threshold, it is determined that the execution device meets the conditions for adding the target user to the user blacklist.

11. A task scheduling device, characterized in that, For scheduling equipment, the device includes: The receiving module is used to receive a task scheduling request sent by a first user, wherein the task scheduling request includes a task to be scheduled. The processing module is used to determine one or more target execution devices that will run the scheduled task based on a target blacklist. The target blacklist includes a task blacklist, a global blacklist, and a user blacklist. The target execution device is not in the global blacklist, is not in the user blacklist corresponding to the first user, and is not in the task blacklist corresponding to the scheduled task. The one or more target execution devices include all execution devices in the task scheduling system that are not in the global blacklist, not in the user blacklist corresponding to the first user, and not in the task blacklist corresponding to the scheduled task, or include one or more execution devices randomly selected from all execution devices. The execution devices in the target blacklist are added after the execution device meets the conditions for joining the target blacklist based on historical task execution results. The historical task execution results are obtained by the execution device periodically sliding a time window and acquiring the historical task execution results of the execution device within the current time window after each slide. The sending module is used to assign the scheduled task to the one or more target execution devices.

12. The apparatus according to claim 11, characterized in that, The receiving module is further configured to receive a global blacklist addition request sent by the first execution device, wherein the global blacklist addition request includes the device identifier of the first execution device; The processing module is further configured to add the first execution device to the global blacklist based on the global blacklist addition request.

13. The apparatus according to claim 12, characterized in that, The processing module is further configured to: The first test task is sent to the first execution device through the sending module; When the first execution device fails to run the first test task, the first execution device is added to the global blacklist; When the first execution device successfully runs the first test task, the first execution device is not added to the global blacklist.

14. The apparatus according to any one of claims 11 to 13, characterized in that, The receiving module is further configured to receive a user blacklist addition request sent by the second execution device, wherein the user blacklist addition request includes the device identifier of the second execution device and the user identifier of the second user; The processing module is further configured to add the second execution device to the user blacklist corresponding to the second user based on the user blacklist addition request.

15. The apparatus according to claim 14, characterized in that, The processing module is further configured to: The second test task is sent to the second execution device through the sending module; When the second execution device fails to run the second test task, the second execution device will be added to the user blacklist corresponding to the second user. When the second execution device successfully runs the second test task, the second execution device is not added to the user blacklist corresponding to the second user.

16. The apparatus according to any one of claims 11 to 13, or 15, characterized in that, The processing module is further configured to: When a third execution device exists in any blacklist of the target blacklist for a duration that reaches the target duration, the third execution device in any blacklist is deleted.

17. The apparatus according to claim 14, characterized in that, The processing module is further configured to: When a third execution device exists in any blacklist of the target blacklist for a duration that reaches the target duration, the third execution device in any blacklist is deleted.

18. A task scheduling device, characterized in that, For performing a device, the means includes: The acquisition module is used to periodically slide the time window and acquire the historical task execution results of the execution device within the target time period after each slide. The target time period is the time period corresponding to the current time window after each slide. The processing module is used to determine whether the execution device meets the conditions for being added to the target blacklist based on the historical task execution results. The target blacklist includes a task blacklist, a global blacklist, and a user blacklist. The target blacklist is used by the scheduling device for task scheduling. The sending module is used to send a target blacklist addition request to the scheduling device when the execution device meets the conditions for adding to the target blacklist; wherein, The processing module is specifically used to: determine whether the execution device meets the conditions for joining the global blacklist based on the historical task execution results; and if the execution device meets the conditions for joining the global blacklist, determine whether the execution device meets the conditions for joining the user blacklist based on the historical task execution results. The device also includes a module that performs the following operations: The system receives a task to be scheduled from the scheduling device. The task to be scheduled is a task of the first user. The execution device is not in the global blacklist, the execution device is not in the user blacklist corresponding to the first user, and the execution device is not in the task blacklist corresponding to the task to be scheduled.

19. The apparatus according to claim 18, characterized in that, The processing module is used for: Based on the historical task execution results, determine the number of failed subtasks among all subtasks executed by the execution device during the target time period; When the number of failed subtasks in all subtasks is greater than or equal to a first failure number threshold, and / or the ratio of the number of failed subtasks to the total number of subtasks is greater than or equal to a first failure ratio threshold, the execution device is determined to meet the conditions for being added to the global blacklist.

20. The apparatus according to claim 18 or 19, characterized in that, The processing module is used for: Based on the historical task execution results, determine the number of failed subtasks among all subtasks corresponding to the target user run by the execution device during the target time period; When the number of failed subtasks in all subtasks corresponding to the target user is greater than or equal to the second failure number threshold, and / or the ratio of the number of failed subtasks in all subtasks corresponding to the target user to the total number of subtasks corresponding to the target user is greater than or equal to the second failure ratio threshold, it is determined that the execution device meets the conditions for adding the target user to the user blacklist.

21. A scheduling device, characterized in that, include: Processor and memory; The memory is used to store computer programs, the computer programs including program instructions; The processor is used to call the computer program to implement the task scheduling method as described in any one of claims 1 to 7.

22. An execution device, characterized in that, include: Processor and memory; The memory is used to store computer programs, the computer programs including program instructions; The processor is used to invoke the computer program to implement the task scheduling method as described in any one of claims 8 to 10.

23. A task scheduling system, characterized in that, include: The scheduling device includes a task scheduling device as described in any one of claims 11 to 17 or a scheduling device as described in claim 21, and the execution device includes a task scheduling device as described in any one of claims 18 to 20 or an execution device as described in claim 22.

24. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores instructions that, when executed by the processor of a computer device, implement the task scheduling method as described in any one of claims 1 to 10.

Citation Information

Patent Citations

  • Submitting method and device for Spark operation

    CN110262881A

  • Service exception processing method and device, and equipment

    CN110764963A

  • Method and device for determining abnormal nodes in service cluster and monitoring server

    CN110837432A

  • Method and program for avoiding jog execution failure in grid computing system, and grid computing system

    WO2008015730A1