Automatic task allocation method and computer readable storage medium
By obtaining and analyzing task data, automatically allocating tasks to the most suitable executors, solving the problem of low efficiency in manually allocating tasks and achieving efficient and flexible assignment of tasks.
Patent Information
- Application Number
- CN202411929409.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-25
- Publication Date
- 2025-04-18
AI Technical Summary
In the prior art, the workload of manually assigned tasks is large and low efficiency, resulting in unreasonable task arrangements, unreasonable completion time, and unreasonable completion personnel arrangements, affecting the smooth progress of the task.
By obtaining the task data of the target task and the task operation data of the task executor, the automatic allocation method is used to assign the target task to the most suitable task executor to realize automatic assignment of tasks.
This method can reasonably automatically assign tasks, ensure that tasks are assigned to the most suitable executors, improve the flexibility of task arrangement, reduce the workload of manual allocation, and improve work efficiency.
Smart Images

Figure CN119849834A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of task scheduling, and in particular, to an automatic task allocation method and a computer-readable storage medium. Background Art
[0002] In many industries, there are a large number of tasks to be performed. In the process of performing the tasks, the task performers need to reasonably arrange the order of the tasks and carry out the work according to the difficulty and importance of the tasks. For example, in the laboratory, the experimenters need to reasonably arrange the order of the experimental tasks, reasonably arrange the experimental tasks and daily time, reasonably arrange the completion time of the experimental tasks, and reasonably arrange the people who complete the experimental tasks according to the difficulty of the experimental tasks. However, in the process of arranging and completing each task, there are often problems such as unreasonable task allocation, unreasonable task completion time, and unreasonable arrangement of task completers, which reduces the work efficiency of the task performers and affects the smooth progress of the tasks.
[0003] At present, the allocation and completion of tasks are usually carried out manually. Task executors need to reasonably arrange the order, completion time and completion personnel of tasks according to the difficulty and importance of the tasks and the responsibilities of the personnel. That is, in a large number of tasks, whether the task executors receive the target tasks themselves or the target task receivers assign the tasks to the task executors, the relevant personnel need to operate, which increases the workload of employees and reduces the efficiency of the experiment. In addition, task executors usually arrange and complete tasks based on their own experience, which is prone to unreasonable task arrangement and unreasonable completion time, affecting the smooth progress of the tasks. Summary of the invention
[0004] The main purpose of the present application is to provide a method for automatically allocating tasks and a computer-readable storage medium, so as to at least solve the problem of large workload and low efficiency of manually allocating tasks in the prior art.
[0005] In order to achieve the above-mentioned purpose, according to one aspect of the present application, a method for automatic task allocation is provided, comprising: obtaining task data of a target task, and storing the task data of the target task in a first database, the task data including the task category and required completion time of the target task; obtaining task operation data of each task executor stored in a second database, the task operation data including the operable task type of the task executor, the latest completion time of all assigned unfinished tasks of the task executor, and the number of assigned unfinished tasks of the task executor; and according to the task data of the target task and the task operation data of each of the task executors, allocating the target task to the target task executor who can operate the target task, so as to realize automatic allocation of the task.
[0006] Optionally, the target task is assigned to a target task executor who can operate the target task based on the task data of the target task and the task operation data of each task executor, including: determining the task executor corresponding to the task category of the target task including the operable task type as the first preparatory task executor; and when there is only one first preparatory task executor, determining the first preparatory task executor as the target task executor.
[0007] Optionally, the target task is assigned to a target task executor who can operate the target task based on the task data of the target task and the task operation data of each task executor, including: when there are multiple first preliminary task executors, one target task executor is determined from multiple first preliminary task executors based on the task data of the target task and the task operation data of each task executor, and the target task is assigned to the target task executor; wherein the operable task type of the first preliminary task executor includes the task category of the target task.
[0008] Optionally, based on the task data of the target task and the task operation data of each of the task executors, one of the target task executors is determined from multiple first preparatory task executors, including: comparing the required completion time of the target task with the latest completion time of all assigned unfinished tasks of each of the first preparatory task executors respectively; determining the first preparatory task executor corresponding to the latest completion time of all assigned unfinished tasks that is earlier than the required completion time of the target task as the second preparatory task executor; and in the case that there is only one second preparatory task executor, determining the second preparatory task executor as the target task executor.
[0009] Optionally, the method also includes: when there are multiple second preparatory task executors, using a priority sorting algorithm to sort the latest completion time of all of the second preparatory task executors, and determining the second preparatory task executor with the earliest latest completion time of all assigned unfinished tasks as the target task executor.
[0010] Optionally, based on the task data of the target task and the task operation data of each of the task executors, one of the target task executors is determined from multiple of the first preliminary task executors, including: when the latest completion time of all the assigned unfinished tasks of all the first preliminary task executors is later than the required completion time of the target task, using a task quantity evaluation algorithm to compare the number of assigned unfinished tasks of each of the first preliminary task executors; and determining the first preliminary task executor with the least number of assigned unfinished tasks as the target task executor.
[0011] Optionally, based on the task data of the target task and the task operation data of each of the task executors, one of the target task executors is determined from multiple of the first preliminary task executors, including: when the latest completion time of all the assigned unfinished tasks of all of the first preliminary task executors is the same, comparing the number of assigned unfinished tasks of each of the first preliminary task executors; and determining the first preliminary task executor with the least number of assigned unfinished tasks as the target task executor.
[0012] Optionally, based on the task data of the target task and the task operation data of each of the task executors, one target task executor is determined from multiple first preparatory task executors, including: when the latest completion time of all the assigned unfinished tasks of all the first preparatory task executors is the same and the number of assigned unfinished tasks of all the first preparatory task executors is also the same, comparing the number of operable task types of each of the first preparatory task executors; and determining the first preparatory task executor with the least number of operable task types as the target task executor.
[0013] Optionally, task operation data of each task executor stored in a second database is obtained, including: obtaining an initial list of task executors from the second database; removing the task executors who are unable to perform the task from the initial list of task executors using a pre-screening algorithm to obtain a target list of task executors; and obtaining the task operation data of each task executor in the target list of task executors.
[0014] According to another aspect of the present application, a computer-readable storage medium is provided, wherein the computer-readable storage medium includes a stored program, wherein when the program is executed, the device where the computer-readable storage medium is located is controlled to perform any one of the automatic task allocation methods.
[0015] Applying the technical solution of the present application, the automatic assignment method of the above-mentioned tasks first obtains the task data of the target task, and stores the task data of the target task in the first database, wherein the task data includes the task category and required completion time of the target task; then obtains the task operation data of each task executor stored in the second database, wherein the task operation data includes the operable task type of the task executor, the latest completion time of all the assigned unfinished tasks of the task executor, and the number of the assigned unfinished tasks of the task executor; finally, according to the task data of the target task and the task operation data of each task executor, the target task is assigned to the target task executor of the operable target task, so as to realize the automatic assignment of tasks. The method can reasonably and automatically assign tasks, ensure that all tasks are assigned to the most suitable task executors, make task arrangement more flexible, and at the same time eliminate the work of manually assigning tasks, reduce the workload, improve work efficiency, and solve the problem of large workload and low efficiency of manually assigning tasks in the prior art. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] The drawings constituting part of the present application are used to provide a further understanding of the present application. The exemplary embodiments and descriptions of the present application are used to explain the present application and do not constitute an improper limitation on the present application. In the drawings:
[0017] Figure 1 A hardware structure block diagram of a mobile terminal for performing an automatic task allocation method provided in an embodiment of the present application is shown;
[0018] Figure 2 A schematic diagram of a process of automatically allocating tasks according to an embodiment of the present application is shown;
[0019] Figure 3 A schematic diagram showing a flow chart of another method for automatically allocating tasks provided according to an embodiment of the present application;
[0020] Figure 4 A structural block diagram of an automatic task allocation device provided according to an embodiment of the present application is shown.
[0021] The above drawings include the following reference numerals:
[0022] 102, processor; 104, memory; 106, transmission device; 108, input and output devices. DETAILED DESCRIPTION
[0023] It should be noted that, in the absence of conflict, the embodiments and features in the embodiments of the present application can be combined with each other. The present application will be described in detail below with reference to the accompanying drawings and in combination with the embodiments.
[0024] In order to enable those skilled in the art to better understand the solution of the present application, the technical solution in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work should fall within the scope of protection of the present application.
[0025] It should be noted that the terms "first", "second", etc. in the specification and claims of the present application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequential order. It should be understood that the data used in this way can be interchanged where appropriate, so that the embodiments of the present application described here. In addition, the terms "including" and "having" and any of their variations are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device comprising a series of steps or units is not necessarily limited to those steps or units clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.
[0026] As introduced in the background technology, in a laboratory, the number of laboratory tasks every day is very large. No matter whether the task executors receive the target tasks themselves or the target task receivers assign the laboratory tasks to the task executors, relevant personnel are required to perform operations, which not only increases the workload of employees but also reduces the efficiency of the experiment. In order to solve the problem of large workload and low efficiency of manual task allocation in the prior art, the embodiments of the present application provide a method for automatic task allocation, an automatic task allocation device, a computer-readable storage medium and an electronic device.
[0027] The technical solutions in the embodiments of the present invention will be described clearly and completely below in conjunction with the accompanying drawings in the embodiments of the present invention.
[0028] The method embodiments provided in the embodiments of the present application can be executed in a mobile terminal, a computer terminal or a similar computing device. Taking running on a mobile terminal as an example, Figure 1 FIG. 1 is a hardware structure diagram of a mobile terminal of an automatic task allocation method according to an embodiment of the present invention. Figure 1 As shown, the mobile terminal may include one or more ( Figure 1 Only one is shown in the figure) a processor 102 (the processor 102 may include but is not limited to a processing device such as a microprocessor MCU or a programmable logic device FPGA) and a memory 104 for storing data, wherein the mobile terminal may also include a transmission device 106 and an input / output device 108 for communication functions. It can be understood by those skilled in the art that Figure 1The structure shown is only for illustration and does not limit the structure of the mobile terminal. Figure 1 More or fewer components as shown, or with Figure 1 Different configurations are shown.
[0029] The memory 104 can be used to store computer programs, for example, software programs and modules of application software, such as the computer program corresponding to the automatic task allocation method in the embodiment of the present invention. The processor 102 executes various functional applications and data processing by running the computer program stored in the memory 104, that is, the above method is implemented. The memory 104 may include a high-speed random access memory, and may also include a non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some examples, the memory 104 may further include a memory remotely arranged relative to the processor 102, and these remote memories may be connected to the mobile terminal via a network. Examples of the above-mentioned network include but are not limited to the Internet, an intranet, a local area network, a mobile communication network, and a combination thereof. The transmission device 106 is used to receive or send data via a network. The above-mentioned specific examples of the network may include a wireless network provided by a communication provider of the mobile terminal. In one example, the transmission device 106 includes a network adapter (Network Interface Controller, referred to as NIC), which can be connected to other network devices through a base station so as to communicate with the Internet. In one example, the transmission device 106 may be a radio frequency (RF) module, which is used to communicate with the Internet wirelessly.
[0030] In this embodiment, a method for automatically allocating tasks running on a mobile terminal, a computer terminal or a similar computing device is provided. It should be noted that the steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer executable instructions, and although a logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in an order different from that shown here.
[0031] Figure 2 FIG. 1 is a flowchart of a method for automatically allocating tasks according to an embodiment of the present application. Figure 2 As shown, the method comprises the following steps:
[0032] Step S201, obtaining task data of a target task, and storing the task data of the target task in a first database, wherein the task data includes a task category and a required completion time of the target task;
[0033] Specifically, since the number of laboratory tasks is large, the target task can be a target experimental task. In the case where the target task is a target experimental task, the task data of the target task is entered into the experimental management system and stored in the first database, effectively collecting and sorting the key data of the target task, and providing a basis and convenience for the subsequent screening of task executors who can test the corresponding task category and realizing automatic and reasonable task allocation, which helps to improve the experimental efficiency and allocation accuracy.
[0034] In addition, task data can also be obtained by identifying relevant paper task orders through image algorithms, not necessarily by entering and storing them. Here, the method of obtaining task data for the target task can be selected according to actual needs.
[0035] Among them, due to the wide variety of laboratory tasks, laboratory tasks are classified according to task categories during entry, and are divided into two levels: major categories and minor categories. The major categories of experiments include environmental experiments, electrical safety experiments, toxic and hazardous substance detection, etc. Among them, the experimental minor categories under environmental experiments include high temperature experiments, low temperature experiments, salt spray experiments, hot and cold shock experiments, and dust experiments; the experimental minor categories under electrical safety experiments include needle flame experiments, ball pressure experiments, glow wire experiments, and leakage tracking experiments; the experimental minor categories under toxic and hazardous substance detection include mixed gas experiments, high-risk hazardous substance inventory (N'N-dimethylformamide), high-risk hazardous substance inventory (tris(2-chloroethyl) phosphate (TCEP)), high-risk hazardous substance inventory (hexabromocyclododecane), and high-risk hazardous substance inventory (chlorinated paraffin). In an optional implementation scheme, the task category finally selected for the laboratory task is environmental experiment-high temperature experiment.
[0036] Step S202, acquiring the task operation data of each task executor stored in the second database, wherein the task operation data includes the operable task type of the task executor, the latest completion time of all the assigned unfinished tasks of the task executor, and the number of the assigned unfinished tasks of the task executor;
[0037] Specifically, obtaining the task operation data of each task executor provides an important basis for subsequent task allocation, progress management and resource allocation, and is an important reference for reasonable automatic task allocation. The first database and the second database can be the same database or two different databases.
[0038] In some examples, a laboratory management system or database is used to collect target task data and task execution personnel data. The data processing unit (such as processor 102) is responsible for cleaning and collating data to ensure the accuracy and real-time nature of the data.
[0039] The step of obtaining the task operation data of each task executor stored in the second database includes the following steps:
[0040] Step S2021, obtaining a list of initial task performers from the second database;
[0041] Step S2022, using a pre-screening algorithm to remove the task performers who are unable to perform the task from the initial task performer list, to obtain a target task performer list;
[0042] Step S2023, obtaining the task operation data of each of the above-mentioned task executors in the above-mentioned target task executors list.
[0043] Specifically, in combination with the pre-screening algorithm, the type of experiment is determined to ensure that the laboratory task is performed by the task executors with relevant capabilities. After entering the laboratory task allocation queue, the task executors who can test the corresponding experiment type are screened out according to the experiment type of the laboratory task. In an optional implementation scheme, if task executor A can test all experiments under the general category of environmental experiments, then task executor A can test the experiments in the category of "environmental experiments-high temperature experiments". There is no situation where there is no task executor who can test this type of experiment.
[0044] Among them, the pre-screening algorithm is mainly used in the laboratory task automatic allocation system to determine which task performers can perform a specific target task. This is usually based on the skills, availability, and specific requirements of the task performers. The pre-screening algorithm can be implemented using a variety of specific algorithms. The following are some examples:
[0045] 1. Rule-based screening algorithm: This is the most basic screening method, which mainly screens task performers by setting a series of rules (such as the task performer's skill set, current task status, free time, etc.). For example, if a task requires chemical analysis skills, the algorithm will screen out all task performers with this skill.
[0046] 2. Matching algorithm (such as weighted matching algorithm): Establish a degree of matching between task performers and tasks, and select the most suitable task performers based on the degree of matching. The matching degree can be calculated based on the weighted calculation of the task performers' skills, experience, historical performance, etc. For example, the solution to the stable marriage problem (Gale-Shapley algorithm) is used to solve the best match between task performers and tasks, ensuring that each task performer obtains the task they are best at and most suitable for their current status.
[0047] 3. Clustering algorithm: First, cluster the task performers according to their skills, experience, etc., and then find the most suitable task performer in each cluster. This method can handle the multi-attribute problem of task performers, such as using the K-means algorithm to classify task performers.
[0048] 4. Decision tree algorithm: Build a decision tree to screen task performers based on their attributes (such as skills, task history, and free time). Each branch of the decision tree represents a condition for an attribute, and the final leaf node represents whether the performer is suitable for the task. For example, use the ID3 or C4.5 algorithm to build a decision tree model.
[0049] 5. Deep learning algorithm: By building a neural network model, inputting various attributes and historical performance of task executors, and outputting a score representing the task executor's ability to complete the task. Task executors with high scores will be given priority in assigning tasks. For example, using convolutional neural networks (CNN) or long short-term memory networks (LSTM) to analyze the historical task completion of task executors and predict their adaptability to new tasks.
[0050] 6. Genetic Algorithm: The matching of task performers and tasks is regarded as an optimization problem, and the optimal matching combination is searched through genetic algorithm. Genetic algorithm optimizes the solution by simulating the natural selection process (such as crossover, mutation, selection).
[0051] 7. Bayesian Network: Use Bayesian Network to model the dependency between task executors and tasks. Use probabilistic inference to predict which task executor is most likely to successfully complete the task.
[0052] Among the above algorithms, rule-based screening algorithms are the simplest and most direct, and are suitable for situations where the rules are clear and the amount of data is not large. Deep learning algorithms and genetic algorithms are suitable for situations where the amount of data is large and the attributes are complex, and can find better solutions through learning and evolution. Different algorithms can be combined with each other to improve the accuracy and efficiency of screening. For example, simple rules are used to screen out preliminary candidates, and then more complex algorithms are used for secondary screening to achieve the best resource allocation.
[0053] The choice of pre-screening algorithm depends on the specific needs of the laboratory, the complexity of the task performer data, and the availability of system resources. In practical applications, it may be necessary to combine multiple algorithms, or adjust and optimize existing algorithms to suit the specific laboratory environment. For example, a rule-based algorithm can be used to quickly exclude task performers who obviously do not meet the requirements, and then a more complex weighted matching algorithm or deep learning algorithm can be used to further refine the screening.
[0054] Step S203, according to the task data of the target task and the task operation data of each of the task executors, the target task is assigned to the target task executors who can operate the target task, so as to realize automatic assignment of the task.
[0055] Specifically, the target task is matched with the most suitable task executor to realize automatic task allocation, thus eliminating the need for manual task allocation, reducing workload and improving work efficiency.
[0056] Wherein, step S203 may be performed by using at least the following algorithms:
[0057] 1. Rule engine: Define a series of rules, such as personnel skills, experiment type matching, number of assigned tasks, latest completion time of all assigned unfinished tasks of task executors, etc., to screen qualified personnel.
[0058] 2. Priority sorting algorithm: such as quick sort, heap sort or priority queue algorithm, which sorts tasks according to the latest completion time of the task executors or the number of tasks.
[0059] 3. Matching algorithm: Based on weighted matching, stable marriage problem solution (Gale-Shapley algorithm), greedy algorithm, etc., multiple attributes of the task executors are comprehensively considered to determine the best match.
[0060] 4. Prediction model: Use machine learning techniques such as linear regression, decision trees, neural networks, etc. to predict the time required for task executors to complete specific tasks.
[0061] 5. Decision tree algorithm: Use the attributes of personnel and tasks as nodes to build a decision tree model to automatically generate decision paths and select the best personnel allocation plan.
[0062] 6. Classification algorithms: such as logistic regression, support vector machine (SVM), random forest, etc., are used to classify task performers as "suitable" or "unsuitable" and further screen suitable target personnel.
[0063] 7. Genetic algorithm: By simulating the natural selection process, it optimizes the matching combination between task executors and tasks to find the most efficient allocation solution.
[0064] The step of allocating the target task to the target task executor who can operate the target task according to the task data of the target task and the task operation data of each of the task executors includes the following steps:
[0065] Step S301, determining the task executor corresponding to the task category of the operable task type including the target task as the first preliminary task executor;
[0066] Step S302, when there is only one first preliminary task executor, determine the first preliminary task executor as the target task executor;
[0067] Wherein, according to the task data of the target task and the task operation data of each task executor, the target task is assigned to the target task executor who can operate the target task, and the following steps are also included:
[0068] Step S303, when there are multiple first preparatory task executors, one target task executor is determined from the multiple first preparatory task executors based on the task data of the target task and the task operation data of each task executor, and the target task is assigned to the target task executor, wherein the operable task types of the first preparatory task executor include the task category of the target task.
[0069] Specifically, when the target task is a target experimental task, all laboratory tasks are assigned to the task executors responsible for the corresponding task categories according to the task categories to ensure the normal progress of the experiment, and on the basis of ensuring the successful assignment of all laboratory tasks, the laboratory tasks are assigned based on the principle of speed priority. In the experimental management system, the task data of the above target task and the task operation data of each of the above task executors are input, and the system can automatically screen out the target task executors who can operate the above target task.
[0070] Among them, priority sorting is used to sort the task executors according to their latest completion time, the number of assigned unfinished tasks, and other attributes, and select the task executor with the highest priority. For example, the attributes of the task executors can be sorted using a quick sort or heap sort algorithm, and then the first task executor after sorting can be selected. A comprehensive score is calculated for each task executor, which takes into account multiple factors such as task matching, completion time prediction, number of tasks, etc. The scoring algorithm can be a simple weighted sum or a complex machine learning model. Then sort according to the score and select the task executor with the highest score.
[0071] In some instances, it is also possible to predict the time required for a task performer to complete a specific task, and select the task performer with the shortest predicted time. Techniques such as linear regression, decision tree regression, or neural network regression can be used. Task performers are classified into two categories: "suitable" and "unsuitable", and the task performer with the classification result of "suitable" is selected. Classification algorithms such as logistic regression, support vector machine (SVM), or random forest can be used.
[0072] Wherein, according to the task data of the target task and the task operation data of each of the task executors, determining one of the target task executors from the plurality of first preliminary task executors, further comprises the following steps:
[0073] Step S401, respectively comparing the required completion time of the target task with the latest completion time of all the assigned unfinished tasks of each of the first preliminary task executors;
[0074] Step S402, determining the first preparatory task executor corresponding to the latest completion time of all the assigned unfinished tasks that is earlier than the required completion time of the target task as the second preparatory task executor;
[0075] Step S403, when there is only one second preliminary task executor, determine the second preliminary task executor as the target task executor;
[0076] Step S404, when there are multiple second preparatory task executors, a priority sorting algorithm is used to sort the latest completion time of all the second preparatory task executors, and the second preparatory task executor with the earliest latest completion time of all the assigned unfinished tasks is determined as the target task executor.
[0077] Among them, the priority sorting algorithm can be implemented using a variety of specific algorithms. The following are some commonly used priority sorting algorithms:
[0078] 1. Quick Sort: By selecting a benchmark element, placing all elements smaller than the benchmark to the left of the benchmark, and elements larger than the benchmark to the right of the benchmark, and then recursively sorting the arrays on the left and right. Quick Sort has a high efficiency in average cases, and the time complexity is O(nlogn).
[0079] 2. Heap Sort: A heap is a special complete binary tree structure in which the value of each parent node is greater than or less than the value of its child node. Heap sort sorts data by building a maximum heap (or minimum heap), swapping the top element of the heap (maximum or minimum value) with the tail element of the heap, and then re-adjusting the heap structure, repeating this process until the heap is empty. The time complexity of heap sort is also O(nlogn).
[0080] 3. Merge Sort: By dividing the array into two halves, sorting the two halves separately, and then merging the two sorted arrays into an ordered array. Merge Sort is a stable sorting algorithm with a time complexity of O(nlogn).
[0081] 4. Insertion Sort: Divide the array into sorted and unsorted parts, take an element from the unsorted part, find its correct position in the sorted part, and insert it. Insertion sort performs well on small data sets, with a time complexity of O(n^2).
[0082] 5. Bubble Sort: By repeatedly traversing the entire array, comparing adjacent elements, and swapping positions if the order is wrong. Bubble sort is also simple, but less efficient, with a time complexity of O(n^2).
[0083] In the sorting of the latest completion time of laboratory task executors, if the data scale is large, quick sort, heap sort or merge sort are usually used because they have better average performance on large data sets. If the data volume is small or the real-time requirement is high, it may be simpler and more effective to use insertion sort or bubble sort. Priority queue sort is suitable for scenarios where a priority queue needs to be maintained continuously, such as task scheduling systems.
[0084] Specifically, according to the latest time allocation for the task executors to complete the experiment, it is guaranteed that the task executors have sufficient time to complete the laboratory tasks. Obtain the latest required completion time of the experiment among the laboratory tasks that have been assigned and not completed by the above-mentioned first preliminary task executors, and compare this time with the required completion time of the currently assigned laboratory task. If the former time is earlier than the latter, the laboratory task can be assigned to the task executor. In an optional implementation scheme, task executor A has been assigned three laboratory tasks, and the required completion times are 2024-04-05, 2024-03-06, and 2024-03-27, respectively. The latest time is 2024-04-05, which is earlier than the required completion time of the currently assigned laboratory task of 2024-05-01, so the laboratory task can be assigned to task executor A.
[0085] If multiple task executors can meet the requirements, a priority sorting algorithm is used for secondary screening, and the task executors with the latest completion time and the earliest completion time are given priority. In an optional implementation scheme, task executor A has been assigned three laboratory tasks, with the required completion time being 2024-04-05, 2024-03-06, and 2024-03-27, and the latest completion time is 2024-04-05. Task executor B has been assigned two laboratory tasks, with the required completion time being 2024-04-17 and 2024-03-23, and the latest completion time is 2024-04-17. At this time, the required completion time of the assigned laboratory task is 2024-05-02, and the laboratory task is given priority to task executor A.
[0086] In some instances, quick sort is an efficient sorting algorithm that divides an array into smaller sub-arrays through a divide-and-conquer strategy and then recursively sorts these sub-arrays. For this step, the latest completion time of the task executors can be used as the key for sorting, and the task executor with the earliest completion time can be selected. Heap sort is an algorithm that implements sorting by building a maximum heap or a minimum heap. In this scenario, a minimum heap can be built, and the latest completion time of the task executors can be used as the key value of the heap element. The top element of the heap is the task executor with the earliest completion time. Priority queue is a data structure that can efficiently handle priority sorting problems. The task executors are used as elements of the queue, and the latest completion time is used as the priority. The dequeue operation of the priority queue will return the task executor with the highest priority, that is, the task executor with the earliest completion time.
[0087] In the specific implementation, it is necessary to comprehensively consider factors such as the scale of the task executor data, real-time requirements, and system performance. For example, for large-scale data, merge sort and heap sort may be more suitable because their average time complexity is lower, O(n log n) and O(n log n), respectively. For medium-sized data, quick sort may be the best choice because it is usually more efficient than other O(n log n) algorithms in practical applications and can handle large-scale data better. For small-scale data or scenarios with high real-time requirements, insertion sort or bubble sort may be more applicable. Although their time complexity is higher (O(n^2)), their constant factors are small for sorting small amounts of data, and they are simple to implement and easy to maintain.
[0088] Priority queue is a particularly efficient data structure that can quickly find the element with the highest priority, that is, the task executor with the earliest completion time. This data structure is particularly useful when dealing with real-time task allocation because it can insert new elements in O(log n) time and find the element with the highest priority in O(1) time.
[0089] Wherein, according to the task data of the target task and the task operation data of each of the task executors, determining one of the target task executors from the plurality of first preliminary task executors, further comprises the following steps:
[0090] Step S501, when the latest completion time of all the assigned unfinished tasks of all the first preparatory task executors is later than the required completion time of the target task, a task quantity evaluation algorithm is used to compare the number of assigned unfinished tasks of each of the first preparatory task executors;
[0091] Among them, the following are some specific algorithms for implementing the task quantity evaluation function:
[0092] 1. Simple counting algorithm: This is the most direct method. It calculates the total number of unfinished tasks of each task executor and selects the person with the least unfinished tasks to assign new tasks. This method is simple and fast, but it may ignore the complexity and urgency of the task.
[0093] 2. Time prediction algorithm: predict the time required for each task performer to complete all the tasks currently on hand. Select the person with the earliest estimated completion time for task assignment. This can be achieved by analyzing the time it took the task performers to complete similar tasks in the past.
[0094] 3. Priority queue algorithm: Use the priority queue data structure to sort the task executors in reverse order of the number of unfinished tasks (or weighted number of unfinished tasks). New tasks are always assigned to the person with the highest priority in the priority queue (that is, the person with the least unfinished tasks).
[0095] 4. Machine learning algorithm: Based on historical data, use machine learning models (such as regression models and classification models) to predict the ability of each task executor to complete the task. Combine the prediction results and the number of unfinished tasks for comprehensive evaluation.
[0096] 5. Genetic algorithm: Genetic algorithm is used to optimize task allocation and simulate the natural selection process, including operations such as selection, crossover, and mutation, to find the combination of personnel with the least unfinished tasks.
[0097] Step S502: Determine the first preliminary task executor who has the least number of assigned uncompleted tasks as the target task executor.
[0098] Specifically, even if the latest completion time of all task executors does not meet the laboratory task requirements, laboratory tasks can be assigned to task executors to ensure that each laboratory task is executed. If no task executor meets the requirements, the plan will be assigned to the task executor who has the least assigned and uncompleted laboratory tasks among the task executors. In an optional implementation scheme, if task executor A has four assigned and uncompleted laboratory tasks, and task executor B has seven assigned and uncompleted laboratory tasks, then the laboratory task is assigned to task executor A.
[0099] Wherein, according to the task data of the target task and the task operation data of each of the task executors, determining one of the target task executors from the plurality of first preliminary task executors, further comprises the following steps:
[0100] Step S601, when the latest completion time of all the assigned unfinished tasks of all the first preparatory task executors is the same, comparing the number of the assigned unfinished tasks of each of the first preparatory task executors;
[0101] Step S602: Determine the first preliminary task executor who has the least number of assigned uncompleted tasks as the target task executor.
[0102] Specifically, when the latest completion time of the experiments of the task executors is the same, the task executors with fewer target tasks are given priority to make the workload of the employees average. In an optional implementation scheme, task executor A has been assigned three laboratory tasks and has no other unfinished experiments, and the required completion time is 2024-04-05, 2024-03-06, and 2024-03-27, respectively, and its latest completion time is 2024-04-05. Task executor B has been assigned two laboratory tasks and has no other unfinished experiments, and the required completion time is 2024-04-05 and 2024-03-23, respectively, and its latest completion time is 2024-04-05. The latest completion time of the two task executors is the same, but because task executor B has fewer assigned and unfinished laboratory tasks, the current laboratory task is assigned to task executor B.
[0103] Wherein, according to the task data of the target task and the task operation data of each of the task executors, determining one of the target task executors from the plurality of first preliminary task executors, further comprises the following steps:
[0104] Step S701, when the latest completion time of all the assigned unfinished tasks of all the first preparatory task executors is the same and the number of the assigned unfinished tasks of all the first preparatory task executors is the same, compare the number of operable task types of each of the first preparatory task executors;
[0105] Step S702: Determine the first preliminary task executor who has the least number of operable task types as the target task executor.
[0106] Specifically, when the number of target tasks for task executors is the same, priority will be given to task executors who can test fewer experimental types, so as to reduce the workload for task executors with a wider range of experiments to cope with experiments of other experimental types. In an optional implementation scheme, task executors A and B have been assigned three laboratory tasks, and neither has other unfinished experiments. The latest completion time is 2024-03-27. The experimental types that task executor A can test are the entire environmental experiment category, and the experimental types that task executor B can test are environmental experiments-high temperature experiments and environmental experiments-low temperature experiments. At this time, task executor A can see more experimental types, so the current laboratory task is assigned to task executor B.
[0107] In addition, after the current laboratory task is assigned, the laboratory task is removed from the list to be assigned and the next laboratory task is assigned until the list to be assigned is empty. The application retains the function of manual assignment plan to deal with special situations such as the resignation of the laboratory staff and leave.
[0108] In some instances, the front-end user interface allows the target task recipient to enter new tasks and the task performer to view the assignment results. The back-end services include data processing and algorithm execution to implement the automatic assignment logic of tasks. The database is used to store detailed information about the task performer and the target task, as well as the assignment history. Network communication can ensure data synchronization between the front-end and back-end, as well as integration with other laboratory management systems.
[0109] The automatic allocation method of the above-mentioned tasks of the present application, first the target task obtains the task data of the target task, and stores the task data of the target task in the first database, the task data includes the task category and the required completion time of the target task; afterwards, the task operation data of each task executor stored in the second database is obtained, and the task operation data includes the operable task type of the task executor, the latest completion time of all the assigned unfinished tasks of the task executor, and the number of assigned unfinished tasks of the task executor; finally, according to the task data of the target task and the task operation data of each task executor, the target task is assigned to the target task executor of the operable target task, so as to realize the automatic allocation of tasks. The method can reasonably automatically allocate tasks, ensure that all laboratory tasks are allocated to the corresponding most suitable task executors, make task arrangement more flexible, and at the same time, eliminate the work of manually allocating laboratory tasks, reduce the workload, improve work efficiency, and solve the problem of large workload and low efficiency of manually allocating tasks in the prior art.
[0110] In order to enable those skilled in the art to more clearly understand the technical solution of the present application, the implementation process of the method for automatic allocation of laboratory tasks of the present application will be described in detail below with reference to a specific flowchart.
[0111] A specific laboratory task automatic allocation method of the present application, such as Figure 3 As shown, the following steps are included:
[0112] Step S1: Enter the laboratory tasks and add them to the laboratory task allocation queue in ascending order according to the time required to complete them;
[0113] Step S2: According to the task category of the laboratory task, select task executors who can test the corresponding task category;
[0114] Step S3: Determine whether the latest completion time of the experimenter is earlier than the required completion time of the currently assigned laboratory task. If the latest completion time of an experimenter is earlier than the required completion time of the currently assigned laboratory task, the laboratory task is preferentially assigned to the experimenter with the earliest latest completion time.
[0115] Step S4: Compare whether there are experimenters whose earliest and latest completion times are the same. If there are multiple experimenters whose latest completion times are the same and all are the earliest times, give priority to assigning the laboratory task to the task executor who has the least unfinished laboratory tasks;
[0116] Step S5: when the latest completion time of all experimenters is later than the required completion time of the currently assigned laboratory task, the laboratory task is assigned to the experimenter who has the least assigned and unfinished laboratory tasks among the experimenters who can test the corresponding experiment category, and it is determined whether the least number of assigned and unfinished laboratory tasks is the same;
[0117] Step S6: When the number of assigned but unfinished laboratory tasks is the same, the tasks are assigned to the task performer with the least number of testable experiments first;
[0118] Step S7: Determine whether the laboratory task allocation queue is empty. If so, end the program; if not, return to step S2.
[0119] It should be noted that the steps shown in the flowcharts of the accompanying drawings can be executed in a computer system such as a set of computer executable instructions, and that, although a logical order is shown in the flowcharts, in some cases, the steps shown or described can be executed in an order different from that shown here.
[0120] The present application embodiment also provides a kind of automatic allocation device of task, it should be noted that the automatic allocation device of task of the present application embodiment can be used to execute the automatic allocation method for task provided by the present application embodiment. The device is used to implement the above-mentioned embodiment and preferred implementation mode, and the description has been made no more. As used below, the term "module" can realize the combination of software and / or hardware of predetermined function. Although the device described in the following embodiments is preferably realized by software, the realization of hardware, or the combination of software and hardware is also possible and conceived.
[0121] The following is an introduction to the automatic task allocation device provided in the embodiment of the present application.
[0122] Figure 4 Schematic diagram of an automatic task allocation device according to an embodiment of the present application. Figure 4 As shown, the device includes: a first acquisition unit 10, a second acquisition unit 20 and a task allocation unit 30, the first acquisition unit 10 is used to acquire task data of the target task, and store the task data of the target task in the first database, the task data includes the task category and required completion time of the target task; the second acquisition unit 20 is used to acquire task operation data of each task executor stored in the second database, the task operation data includes the operable task type of the task executor, the latest completion time of all assigned unfinished tasks of the task executor, and the number of assigned unfinished tasks of the task executor; the task allocation unit 30 is used to allocate the target task to the target task executor who can operate the target task according to the task data of the target task and the task operation data of each of the task executors, so as to realize automatic allocation of the task.
[0123] The automatic allocation device of the above-mentioned tasks of the present application includes: a first acquisition unit, a second acquisition unit and a task allocation unit, the first acquisition unit is used to acquire the task data of the target task, and store the task data of the target task in the first database, the task data includes the task category and the required completion time of the target task; the second acquisition unit is used to acquire the task operation data of each task executor stored in the second database, the task operation data includes the operable task type of the task executor, the latest completion time of all the assigned unfinished tasks of the task executor, and the number of assigned unfinished tasks of the task executor; the task allocation unit is used to allocate the target task to the target task executor of the operable target task according to the task data of the target task and the task operation data of each task executor, so as to realize the automatic allocation of tasks. The device can reasonably and automatically allocate tasks, ensure that all laboratory tasks are allocated to the corresponding most suitable task executors, make task arrangement more flexible, and at the same time avoid the work of manually allocating laboratory tasks, reduce the workload, improve work efficiency, and solve the problem of large workload and low efficiency of manually allocating tasks in the prior art.
[0124] In some examples, the second acquisition unit includes a first acquisition module, a second acquisition module and a third acquisition module, wherein the first acquisition module is used to acquire the initial task execution personnel list from the second database; the second acquisition module is used to remove the task execution personnel who cannot execute the task from the initial task execution personnel list by using a pre-screening algorithm to obtain a target task execution personnel list; and the third acquisition module is used to acquire the task operation data of each of the task execution personnel in the target task execution personnel list. Combined with the pre-screening algorithm, the laboratory task is ensured to be performed by the task execution personnel with relevant capabilities through the judgment of the experiment type, so as to ensure the smooth progress of the task.
[0125] In some instances, the task assignment unit includes a first task assignment module and a second task assignment module. The first task assignment module is used to determine the task executor corresponding to the task category of the above-mentioned operational task type including the above-mentioned target task as the first preparatory task executor; the second task assignment module determines the above-mentioned first preparatory task executor as the above-mentioned target task executor when there is only one above-mentioned first preparatory task executor.
[0126] The task assignment unit also includes a third task assignment module, which is used to determine one of the target task executors from among the plurality of the first preliminary task executors according to the task data of the target task and the task operation data of each of the task executors, and assign the target task to the target task executor, when there are a plurality of the first preliminary task executors, wherein the operable task type of the first preliminary task executor includes the task category of the target task. On the basis of ensuring the successful assignment of all laboratory tasks, the laboratory tasks are assigned on the principle of speed priority.
[0127] In some examples, the task allocation unit further includes a fourth task allocation module, a fifth task allocation module, a sixth task allocation module and a seventh task allocation module, wherein the fourth task allocation module is used to respectively compare the required completion time of the target task with the latest completion time of all the assigned unfinished tasks of each of the first preparatory task executors; the fifth task allocation module is used to determine the first preparatory task executor corresponding to the latest completion time of all the assigned unfinished tasks earlier than the required completion time of the target task as the second preparatory task executor; the sixth task allocation module is used to determine the second preparatory task executor as the target task executor when there is only one second preparatory task executor; the seventh task allocation module is used to sort the latest completion time of all the second preparatory task executors by a priority sorting algorithm when there are multiple second preparatory task executors, and determine the second preparatory task executor with the earliest latest completion time of all the assigned unfinished tasks as the target task executor. The distribution of the time when the task executors complete the experiment the latest ensures that the task executors have sufficient time to complete the laboratory tasks.
[0128] In some examples, the task allocation unit further includes an eighth task allocation module and a ninth task allocation module. The eighth task allocation module is used to compare the number of assigned unfinished tasks of each of the first preparatory task executors when the latest completion time of all the assigned unfinished tasks of all the first preparatory task executors is later than the required completion time of the target task; the ninth task allocation module is used to determine the first preparatory task executor with the least number of assigned unfinished tasks as the target task executor. Even if the latest completion time of all task executors does not meet the laboratory task requirements, laboratory tasks can be allocated to task executors to ensure that each laboratory task is executed.
[0129] In some examples, the task allocation unit further includes a tenth task allocation module and an eleventh task allocation module. The tenth task allocation module is used to compare the number of assigned unfinished tasks of each of the first preliminary task executors when the latest completion time of all the assigned unfinished tasks of all the first preliminary task executors is the same; the eleventh task allocation module is used to determine the first preliminary task executor with the least number of assigned unfinished tasks as the target task executor. When the latest completion time of the task executors is the same, the task executors with the least number of target tasks are given priority to make the workload of the employees average.
[0130] In some examples, the task allocation unit further includes a twelfth task allocation module and a thirteenth task allocation module. The twelfth task allocation module is used to compare the number of operable task types of each of the first preparatory task executors when the latest completion time of all the assigned unfinished tasks of all the first preparatory task executors is the same and the number of assigned unfinished tasks of all the first preparatory task executors is also the same; the thirteenth task allocation module determines the first preparatory task executor with the least number of operable task types as the target task executor. When the number of target tasks of the task executors is the same, they are preferentially allocated to the task executors with fewer testable experimental types, so as to reduce the workload of the task executors with a larger experimental range to cope with experiments of other experimental types.
[0131] The automatic task allocation device includes a processor and a memory. The first acquisition unit and the like are stored in the memory as program units, and the processor executes the program units stored in the memory to implement corresponding functions. The modules are all located in the same processor; or, the modules are located in different processors in any combination.
[0132] The processor includes a kernel, which retrieves the corresponding program unit from the memory. One or more kernels can be set, and the problem of large workload and low efficiency of manually allocating tasks in the prior art can be solved by adjusting kernel parameters.
[0133] The memory may include non-permanent memory in a computer-readable medium, random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM, and the memory includes at least one memory chip.
[0134] An embodiment of the present invention provides a computer-readable storage medium, wherein the computer-readable storage medium includes a stored program, wherein when the program is executed, a method for automatically allocating the tasks is controlled to execute on a device where the computer-readable storage medium is located.
[0135] Specifically, the automatic task allocation method includes:
[0136] Step S201, obtaining task data of a target task, and storing the task data of the target task in a first database, wherein the task data includes a task category and a required completion time of the target task;
[0137] Specifically, the task data of the above-mentioned target tasks are entered into the experiment management system and stored in the first database, which effectively collects and organizes the key data of the target tasks, and provides a basis and convenience for the subsequent screening of task executors who can test the corresponding task categories and realize automatic and reasonable allocation of tasks, which helps to improve experimental efficiency and allocation accuracy.
[0138] Step S202, acquiring the task operation data of each task executor stored in the second database, wherein the task operation data includes the operable task type of the task executor, the latest completion time of all the assigned unfinished tasks of the task executor, and the number of the assigned unfinished tasks of the task executor;
[0139] Specifically, obtaining the task operation data of each task executor provides an important basis for subsequent task allocation, progress management and resource allocation, and is an important reference for reasonable automatic task allocation.
[0140] Step S203, according to the task data of the target task and the task operation data of each of the task executors, the target task is assigned to the target task executors who can operate the target task, so as to realize automatic assignment of the task.
[0141] Specifically, the target task is matched with the most suitable task executor to realize automatic task allocation, which eliminates the need for manual allocation of laboratory tasks, reduces workload and improves work efficiency.
[0142] Optionally, the target task is assigned to a target task executor who can operate the target task based on the task data of the target task and the task operation data of each task executor, including: determining the task executor corresponding to the task category of the target task including the operable task type as the first preparatory task executor; and when there is only one first preparatory task executor, determining the first preparatory task executor as the target task executor.
[0143] Optionally, the target task is assigned to a target task executor who can operate the target task based on the task data of the target task and the task operation data of each task executor, including: when there are multiple first preliminary task executors, one target task executor is determined from multiple first preliminary task executors based on the task data of the target task and the task operation data of each task executor, and the target task is assigned to the target task executor; wherein the operable task type of the first preliminary task executor includes the task category of the target task.
[0144] Optionally, based on the task data of the target task and the task operation data of each of the task executors, one of the target task executors is determined from multiple first preparatory task executors, including: comparing the required completion time of the target task with the latest completion time of all assigned unfinished tasks of each of the first preparatory task executors respectively; determining the first preparatory task executor corresponding to the latest completion time of all assigned unfinished tasks that is earlier than the required completion time of the target task as the second preparatory task executor; and in the case that there is only one second preparatory task executor, determining the second preparatory task executor as the target task executor.
[0145] Optionally, the method also includes: when there are multiple second preparatory task executors, using a priority sorting algorithm to sort the latest completion time of all of the second preparatory task executors, and determining the second preparatory task executor with the earliest latest completion time of all assigned unfinished tasks as the target task executor.
[0146] Optionally, based on the task data of the target task and the task operation data of each of the task executors, one of the target task executors is determined from multiple first preliminary task executors, including: when the latest completion time of all assigned unfinished tasks of all of the first preliminary task executors is later than the required completion time of the target task, using a task quantity evaluation algorithm to compare the number of assigned unfinished tasks of each of the first preliminary task executors; and determining the first preliminary task executor with the least number of assigned unfinished tasks as the target task executor.
[0147] Optionally, based on the task data of the target task and the task operation data of each of the task executors, one of the target task executors is determined from multiple first preliminary task executors, including: when the latest completion time of all the assigned unfinished tasks of all the first preliminary task executors is the same, comparing the number of assigned unfinished tasks of each of the first preliminary task executors; and determining the first preliminary task executor with the least number of assigned unfinished tasks as the target task executor.
[0148] Optionally, based on the task data of the target task and the task operation data of each of the task executors, one of the target task executors is determined from multiple first preliminary task executors, including: when the latest completion time of all the assigned unfinished tasks of all the first preliminary task executors is the same, and the number of assigned unfinished tasks of all the first preliminary task executors is also the same, comparing the number of operable task types of each of the first preliminary task executors; and determining the first preliminary task executor with the least number of operable task types as the target task executor.
[0149] Optionally, task operation data of each task executor stored in the second database is obtained, including: obtaining an initial list of task executors from the second database; removing the task executors who are unable to perform the task from the initial list of task executors using a pre-screening algorithm to obtain a target list of task executors; and obtaining the task operation data of each of the task executors in the target list of task executors.
[0150] An embodiment of the present invention provides a processor, which is used to run a program, wherein the automatic task allocation method is executed when the program is running.
[0151] Step S201, obtaining task data of a target task, and storing the task data of the target task in a first database, wherein the task data includes a task category and a required completion time of the target task;
[0152] Specifically, the task data of the above-mentioned target tasks are entered into the experiment management system and stored in the first database, which effectively collects and organizes the key data of the target tasks, and provides a basis and convenience for the subsequent screening of task executors who can test the corresponding task categories and realize automatic and reasonable allocation of tasks, which helps to improve experimental efficiency and allocation accuracy.
[0153] Step S202, acquiring the task operation data of each task executor stored in the second database, wherein the task operation data includes the operable task type of the task executor, the latest completion time of all the assigned unfinished tasks of the task executor, and the number of the assigned unfinished tasks of the task executor;
[0154] Specifically, obtaining the task operation data of each task executor provides an important basis for subsequent task allocation, progress management and resource allocation, and is an important reference for reasonable automatic task allocation.
[0155] Step S203, according to the task data of the target task and the task operation data of each of the task executors, the target task is assigned to the target task executors who can operate the target task, so as to realize automatic assignment of the task.
[0156] Specifically, the target task is matched with the most suitable task executor to achieve automatic task allocation, which eliminates the need for manual allocation of laboratory tasks, reduces workload and improves work efficiency. Specifically, the automatic task allocation method includes:
[0157] An embodiment of the present invention provides a device, the device including a processor, a memory, and a program stored in the memory and executable on the processor, and when the processor executes the program, at least the following steps are implemented:
[0158] Step S201, obtaining task data of a target task, and storing the task data of the target task in a first database, wherein the task data includes a task category and a required completion time of the target task;
[0159] Step S202, acquiring the task operation data of each task executor stored in the second database, wherein the task operation data includes the operable task type of the task executor, the latest completion time of all the assigned unfinished tasks of the task executor, and the number of the assigned unfinished tasks of the task executor;
[0160] Step S203, according to the task data of the target task and the task operation data of each of the task executors, the target task is assigned to the target task executors who can operate the target task, so as to realize automatic assignment of the task.
[0161] The devices in this article can be servers, PCs, PADs, mobile phones, etc.
[0162] The present application also provides a computer program product, which, when executed on a data processing device, is suitable for executing a program for initializing at least the following method steps:
[0163] Step S201, obtaining task data of a target task, and storing the task data of the target task in a first database, wherein the task data includes a task category and a required completion time of the target task;
[0164] Step S202, acquiring the task operation data of each task executor stored in the second database, wherein the task operation data includes the operable task type of the task executor, the latest completion time of all the assigned unfinished tasks of the task executor, and the number of the assigned unfinished tasks of the task executor;
[0165] Step S203, according to the task data of the target task and the task operation data of each of the task executors, the target task is assigned to the target task executors who can operate the target task, so as to realize automatic assignment of the task.
[0166] Obviously, those skilled in the art should understand that the above modules or steps of the present invention can be implemented by a general computing device, they can be concentrated on a single computing device, or distributed on a network composed of multiple computing devices, they can be implemented by a program code executable by a computing device, so that they can be stored in a storage device and executed by the computing device, and in some cases, the steps shown or described can be executed in a different order than here, or they can be made into individual integrated circuit modules, or multiple modules or steps therein can be made into a single integrated circuit module for implementation. Thus, the present invention is not limited to any specific combination of hardware and software.
[0167] Those skilled in the art will appreciate that the embodiments of the present application may be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment in combination with software and hardware. Moreover, the present application may adopt the form of a computer program product implemented in one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) that include computer-usable program code.
[0168] The present application is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0169] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.
[0170] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process in the computer or other programmable device. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.
[0171] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.
[0172] The memory may include non-permanent memory in a computer-readable medium, random access memory (RAM) and / or non-volatile memory in the form of read-only memory (ROM) or flash RAM. The memory is an example of a computer-readable medium.
[0173] Computer readable media include permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store information. Information can be computer readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer readable media does not include temporary computer readable media (transitory media), such as modulated data signals and carrier waves.
[0174] It should also be noted that the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, commodity or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, commodity or device. In the absence of more restrictions, the elements defined by the sentence "comprises a ..." do not exclude the existence of other identical elements in the process, method, commodity or device including the elements.
[0175] From the above description, it can be seen that the above embodiments of the present application achieve the following technical effects:
[0176] 1) The automatic assignment method of the above-mentioned tasks of the present application first obtains the task data of the target task, and stores the task data of the target task in the first database, wherein the task data includes the task category and required completion time of the target task; then obtains the task operation data of each task executor stored in the second database, wherein the task operation data includes the operable task type of the task executor, the latest completion time of all the assigned unfinished tasks of the task executor, and the number of assigned unfinished tasks of the task executor; finally, according to the task data of the target task and the task operation data of each task executor, the target task is assigned to the target task executor of the operable target task, so as to realize the automatic assignment of tasks. This method can reasonably and automatically assign tasks, ensure that all tasks are assigned to the most suitable task executors, make task arrangement more flexible, and at the same time eliminate the work of manually assigning tasks, reduce the workload, improve work efficiency, and solve the problem of large workload and low efficiency of manually assigning tasks in the prior art.
[0177] 2) The automatic assignment device of the above-mentioned tasks of the present application includes: a first acquisition unit, a second acquisition unit and a task assignment unit. The first acquisition unit is used to acquire the task data of the target task and store the task data of the target task in the first database. The task data includes the task category and required completion time of the target task; the second acquisition unit is used to acquire the task operation data of each task executor stored in the second database. The task operation data includes the operable task type of the task executor, the latest completion time of all the assigned unfinished tasks of the task executor, and the number of assigned unfinished tasks of the task executor; the task assignment unit is used to assign the target task to the target task executor of the operable target task according to the task data of the target task and the task operation data of each task executor, so as to realize the automatic assignment of tasks. The device can reasonably and automatically assign tasks to ensure that all tasks are assigned to the most suitable task executors, making task arrangement more flexible, while eliminating the work of manually assigning tasks, reducing the workload, and improving work efficiency, solving the problem of large workload and low efficiency of manually assigning tasks in the prior art.
[0178] The above description is only the preferred embodiment of the present application and is not intended to limit the present application. For those skilled in the art, the present application may have various modifications and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application shall be included in the protection scope of the present application.
Claims
1. A method for automatically allocating tasks, characterized in that: include: Acquire task data of the target task, and store the task data of the target task in a first database, wherein the task data includes a task category and a required completion time of the target task; Acquire task operation data of each task executor stored in the second database, wherein the task operation data includes the operable task type of the task executor, the latest completion time of all assigned unfinished tasks of the task executor, and the number of assigned unfinished tasks of the task executor; According to the task data of the target task and the task operation data of each of the task executors, the target task is assigned to the target task executors who can operate the target task, so as to realize automatic assignment of the task.
2. The method according to claim 1, characterized in that According to the task data of the target task and the task operation data of each of the task executors, the target task is assigned to a target task executor who can operate the target task, including: Determine the task executor corresponding to the task category of the operable task type including the target task as the first preliminary task executor; When there is only one first preliminary task performer, the first preliminary task performer is determined as the target task performer.
3. The method according to claim 1, characterized in that According to the task data of the target task and the task operation data of each of the task executors, the target task is assigned to a target task executor who can operate the target task, including: In the case where there are multiple first preliminary task executors, determining one target task executor from the multiple first preliminary task executors according to the task data of the target task and the task operation data of each task executor, and assigning the target task to the target task executor; Among them, the operable task types of the first preparatory task executor include the task category of the target task.
4. The method according to claim 3, characterized in that Determining a target task executor from a plurality of the first preliminary task executors according to the task data of the target task and the task operation data of each of the task executors includes: respectively comparing the required completion time of the target task with the latest completion time of all the assigned unfinished tasks of each of the first preparatory task executors; Determine the first preparatory task executor corresponding to the latest completion time of all the assigned unfinished tasks that is earlier than the required completion time of the target task as the second preparatory task executor; When there is only one second preliminary task performer, the second preliminary task performer is determined as the target task performer.
5. The method according to claim 4, characterized in that The method further comprises: When there are multiple second preparatory task executors, a priority sorting algorithm is used to sort the latest completion times of all the second preparatory task executors, and the second preparatory task executor with the earliest latest completion time of all the assigned unfinished tasks is determined as the target task executor.
6. The method according to claim 3, characterized in that: Determining a target task executor from a plurality of the first preliminary task executors according to the task data of the target task and the task operation data of each of the task executors includes: When the latest completion time of all the assigned unfinished tasks of all the first preparatory task executors is later than the required completion time of the target task, using a task quantity evaluation algorithm to compare the number of assigned unfinished tasks of each of the first preparatory task executors; The first preliminary task executor who has the least number of assigned uncompleted tasks is determined as the target task executor.
7. The method according to claim 3, characterized in that Determining a target task executor from a plurality of the first preliminary task executors according to the task data of the target task and the task operation data of each of the task executors includes: When the latest completion time of all the assigned unfinished tasks of all the first preparatory task executors is the same, comparing the number of the assigned unfinished tasks of each of the first preparatory task executors; The first preliminary task executor who has the least number of assigned uncompleted tasks is determined as the target task executor.
8. The method according to claim 3, characterized in that Determining a target task executor from a plurality of the first preliminary task executors according to the task data of the target task and the task operation data of each of the task executors includes: When the latest completion time of all the assigned unfinished tasks of all the first preparatory task executors is the same, and the number of the assigned unfinished tasks of all the first preparatory task executors is also the same, comparing the number of operable task types of each of the first preparatory task executors; The first preliminary task performer having the least number of operable task types is determined as the target task performer.
9. The method according to any one of claims 1 to 8, characterized in that Acquiring the task operation data of each task executor stored in the second database, including: Obtaining a list of initial task performers from the second database; Using a pre-screening algorithm to remove the task performers who are unable to perform the task from the initial task performer list, to obtain a target task performer list; Obtain the task operation data of each of the task executors in the target task executor list.
10. A computer-readable storage medium, characterized in that: The computer-readable storage medium includes a stored program, wherein when the program is executed, the device where the computer-readable storage medium is located is controlled to execute the automatic task allocation method according to any one of claims 1 to 9.