RPA flow concurrent execution method and device, storage medium and computer equipment
By introducing the maximum concurrent execution number and instruction attribute judgment mechanism in the RPA platform, the problem of insufficient use of computer resources is solved, and the concurrent execution of RPA process tasks and efficient utilization of resources is achieved.
Patent Information
- Application Number
- CN202411820175.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-11
- Publication Date
- 2025-03-14
AI Technical Summary
In the prior art, a computer can only have one RPA process task at the same time, resulting in insufficient use of computer resources and waste of resources.
By introducing the concept of the maximum number of concurrent executions in the RPA platform, it is determined whether the received RPA process task contains instructions to be executed, and whether it is a concurrently executed instruction based on the instruction attributes. If the instruction is executed concurrently, it will be executed directly; if the instruction is executed concurrently, it will be obtained and executed after the required resources are executed. If the maximum number of concurrent executions is reached, the task is added to the cache queue and wait for execution.
It realizes that RPA process tasks are executed concurrently on a computer, making full use of computer resources and improving resource utilization.
Smart Images

Figure CN119621283A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computer technology, and in particular to a method, apparatus, storage medium, and computer device for concurrently executing an RPA process. Background Art
[0002] At present, when the RPA platform executes process tasks, some exclusive computer resources may be used, such as keyboard, mouse, or operation UI interface. If multiple RPA processes are executed at the same time, resource usage conflicts may occur, and eventually the process execution fails. Therefore, only one task of the RPA process can be executed on a computer.
[0003] Specifically, after receiving the task sent by the server, the RPA platform first determines whether there is a task to be executed in the current platform. If there is no task, the executor is started to execute the task. If there is a task to be executed in the current platform, the task is added to the queue, and after the previous task is completed, a task is taken out of the queue for execution. As a result, only one task can be executed on a computer at the same time, which makes the computer resources not fully used and causes resource waste. Summary of the invention
[0004] The purpose of the present application is to solve at least one of the above-mentioned technical defects, especially the technical defect in the prior art that a computer can only execute one task at a time, thereby making insufficient use of computer resources and causing waste of resources.
[0005] The present application provides an RPA process concurrent execution method, which is applied to an RPA platform installed on a computer, and the method includes:
[0006] After receiving the RPA process tasks sent by the server, determine whether the number of tasks being executed on this platform has reached the maximum number of concurrent executions;
[0007] If the maximum number of concurrent executions is not reached, determining whether the RPA process task contains instructions to be executed;
[0008] If the to-be-executed instruction is included, determining whether the to-be-executed instruction is an instruction that can be executed concurrently;
[0009] If it is an instruction that can be executed concurrently, directly execute the instruction to be executed;
[0010] If the instruction is not executable concurrently, then after acquiring resources required to execute the instruction to be executed, execute the instruction to be executed;
[0011] If there is no instruction to be executed or resource acquisition fails, the execution of this task will be terminated;
[0012] If the maximum number of concurrent executions is reached, the RPA process task is added to the cache queue and waits for execution.
[0013] Optionally, the determining whether the to-be-executed instruction is a concurrently executable instruction includes:
[0014] Determine the instruction attribute corresponding to the to-be-executed instruction, wherein the instruction attribute is obtained by clustering and dividing all instructions in the historical RPA process tasks received by the platform in advance, and the instruction attribute includes concurrently executable instructions and non-concurrently executable instructions;
[0015] Determine whether the to-be-executed instruction is an instruction that can be executed concurrently according to the instruction attribute.
[0016] Optionally, the RPA platform includes a resource control module and a task execution module corresponding to the RPA process task;
[0017] After acquiring the resources required to execute the instruction to be executed, executing the instruction to be executed includes:
[0018] Using the task execution module to send a resource application instruction to the resource control module, wherein the resource application instruction includes a resource lock to be applied for, and the resource lock corresponds to a resource type in the computer in a one-to-one manner;
[0019] Determining whether the resource lock is occupied by the resource control module;
[0020] If it is not occupied, the resource lock is locked by the resource control module, and a request response is returned to the task execution module so that the task execution module executes the instruction to be executed;
[0021] If it is occupied, the resource lock is monitored by the resource control module, and the usage of the resource lock is pushed to the task execution module at regular intervals until it is monitored that the resource lock is not occupied.
[0022] Optionally, before monitoring the resource lock by the resource control module and regularly pushing the usage of the resource lock to the task execution module, the method further includes:
[0023] The task execution module subscribes to a resource lock push message corresponding to the resource type to the resource control module according to the resource type required by the instruction to be executed.
[0024] Optionally, the method further comprises:
[0025] When the current execution task is completed, a resource release instruction is sent to the resource control module through the task execution module;
[0026] After receiving the resource release instruction through the resource control module and releasing the resource lock corresponding to the resource release instruction, the usage of the resource lock is sent to the task execution module that subscribes to the resource lock push message, so that the corresponding task execution module sends the resource application instruction again.
[0027] Optionally, the method further comprises:
[0028] The resource control module is used to regularly check whether a task execution module that applies for resources has any abnormality, and terminate the task and release the resources of the task execution module that has any abnormality.
[0029] Optionally, the method further comprises:
[0030] The task execution module periodically checks whether the resource control module has any abnormality, and when an abnormality occurs, terminates the task execution and reports the abnormality to the server.
[0031] The present application also provides an RPA process concurrent execution device, which is applied to an RPA platform installed on a computer, including:
[0032] The concurrent number determination module is used to determine whether the number of tasks being executed on the platform has reached the maximum concurrent execution number after receiving the RPA process tasks sent by the server;
[0033] A module for determining instructions to be executed, used to determine whether the RPA process task contains instructions to be executed if the maximum number of concurrent executions is not reached;
[0034] A concurrently executable instruction determination module, used for determining whether the to-be-executed instruction is a concurrently executable instruction if the to-be-executed instruction is included;
[0035] A first instruction execution module, configured to directly execute the instruction to be executed if the instruction is concurrently executable;
[0036] A second instruction execution module, configured to execute the instruction to be executed after acquiring resources required to execute the instruction to be executed if the instruction is not executable concurrently;
[0037] The task execution end module is used to end the task if it does not contain instructions to be executed or resource acquisition fails;
[0038] The waiting execution module is used to add the RPA process task to the cache queue to wait for execution if the maximum concurrent execution number is reached.
[0039] The present application also provides a computer-readable storage medium, in which computer-readable instructions are stored. When the computer-readable instructions are executed by one or more processors, the one or more processors execute the steps of the RPA process concurrent execution method as described in any of the above embodiments.
[0040] The present application also provides a computer device, comprising: one or more processors, and a memory;
[0041] The memory stores computer-readable instructions, and when the computer-readable instructions are executed by the one or more processors, the steps of the RPA process concurrent execution method described in any one of the above embodiments are performed.
[0042] It can be seen from the above technical solutions that the embodiments of the present application have the following advantages:
[0043] The RPA process concurrent execution method, device, storage medium and computer equipment provided in the present application are applied to an RPA platform installed on a computer. After receiving the RPA process task sent by the server, the RPA platform can first determine whether the number of tasks being executed by the platform has reached the maximum concurrent execution number; if the maximum concurrent execution number has not been reached, determine whether the RPA process task contains instructions to be executed; if it contains instructions to be executed, determine whether the instructions to be executed are concurrently executable instructions; if they are concurrently executable instructions, directly execute the instructions to be executed; if they are non-concurrently executable instructions, execute the instructions to be executed after obtaining the resources required to execute the instructions to be executed; if it does not contain instructions to be executed or the resource acquisition fails, end the current execution task; if the maximum concurrent execution number has been reached, add the RPA process task to the cache queue and wait for execution. In this process, since the various instructions in the RPA process tasks are classified in advance, some instructions that can be executed concurrently can be executed concurrently. For some instructions that cannot be executed concurrently, since the current platform has not reached the maximum number of concurrent executions, the instructions can be executed by obtaining resources. In this way, RPA process tasks can be executed concurrently on a computer, thereby making full use of computer resources and improving the utilization rate of computer resources. BRIEF DESCRIPTION OF THE DRAWINGS
[0044] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative labor.
[0045] Figure 1A flowchart of a method for concurrently executing an RPA process provided in an embodiment of the present application;
[0046] Figure 2 A schematic diagram of a process for obtaining resources required to execute instructions to be executed provided in an embodiment of the present application;
[0047] Figure 3 A schematic diagram of the structure of an RPA process concurrent execution device provided in an embodiment of the present application;
[0048] Figure 4 A schematic diagram of the internal structure of a computer device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0049] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions 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 are within the scope of protection of this application.
[0050] In one embodiment, Figure 1 As shown, Figure 1 A flowchart of a method for concurrently executing an RPA process provided in an embodiment of the present application; the present application provides a method for concurrently executing an RPA process, which is applied to an RPA platform installed on a computer, and the method may include:
[0051] S110: After receiving the RPA process task sent by the server, determine whether the number of tasks being executed by this platform has reached the maximum concurrent execution number; if it has not reached the maximum concurrent execution number, execute S120; if it has reached the maximum concurrent execution number, execute S170.
[0052] S120: Determine whether the RPA process task contains instructions to be executed; if it contains instructions to be executed, execute S130; if it does not contain instructions to be executed, execute S160.
[0053] S130: Determine whether the instruction to be executed is an instruction that can be executed concurrently; if it is an instruction that can be executed concurrently, execute S140; if it is an instruction that cannot be executed concurrently, execute S150.
[0054] S140: Directly execute the pending instruction.
[0055] S150: After acquiring the resources required to execute the instruction to be executed, execute the instruction to be executed; if the resource acquisition fails, execute S160.
[0056] S160: End the current mission.
[0057] S170: Add the RPA process task to the cache queue to wait for execution.
[0058] In this embodiment, since an RPA platform will be installed on one computer, the RPA platform can configure a maximum number of concurrent executions for each computer in this application, and determine whether the RPA process task currently received from the server is executed immediately based on the maximum number of concurrent executions. In addition, this application can also cluster all instructions in the historical RPA process tasks of the RPA platform, and divide the instructions in the RPA process tasks into concurrently executable instructions and non-concurrently executable instructions. In this way, RPA process tasks can be executed concurrently on one computer, thereby making full use of computer resources.
[0059] Specifically, after receiving the RPA process task sent by the server, the RPA platform in this application can first determine whether the number of tasks being executed by the platform has reached the maximum concurrent execution number. If so, the RPA process task is added to the cache queue, and a time slice is allocated and the task is assigned when waiting for the next task; if not, it means that the current platform can continue to execute RPA process tasks concurrently.
[0060] Furthermore, since an RPA process task may contain multiple instructions to be executed, or may not contain any instructions to be executed, the present application can continue to determine whether the RPA process task contains instructions to be executed. If not, the execution of the task can be terminated directly. If it does, it can continue to determine whether the instructions to be executed are concurrently executable instructions. If they are concurrently executable instructions, the instructions to be executed can be executed directly. If they are non-concurrently executable instructions, the resources required to execute the instructions to be executed can be obtained before executing the instructions to be executed. If the resource acquisition fails, the execution of the task can also be terminated, thereby effectively improving the utilization of computer resources.
[0061] It can be understood that the instructions to be executed in the RPA process tasks issued by the server of this application are instructions that have been arranged in a specific order. When the RPA platform receives the RPA process task, it can check whether there are instructions to be executed through the script file corresponding to the RPA process task. Once it is determined that there are instructions to be executed, the RPA platform can start an instance of the task execution module through the task allocation module, and execute the corresponding task through the instance.
[0062] Among them, the RPA platform of the present application may include multiple modules, including but not limited to a task allocation module and a task execution module. The task allocation module is a singleton in the RPA platform and has only one instance, while the task execution module may have multiple instances in the RPA platform. When each task is executed, a task execution module will be started, and the corresponding task will be executed through the task execution module.
[0063] In addition, when the RPA process task of the present application contains multiple instructions to be executed, each instruction to be executed can be executed according to the concurrent execution process of S130~S160 mentioned above, thereby effectively improving the execution efficiency.
[0064] It should be noted that in an RPA process task, the instructions that can be executed concurrently can account for more than half, and in a task, the instructions that cannot be executed concurrently may require different resources. For example, task A requires a mouse, and task B requires a desktop. If these two instructions are executed at the same time, they are allowed to be executed concurrently. Therefore, this application converts serially executed tasks into concurrent execution, which can greatly reduce the total execution time of multiple tasks, thereby effectively improving the efficiency of task execution.
[0065] In the above embodiment, the method is applied to an RPA platform installed on a computer. After receiving the RPA process task sent by the server, the RPA platform can first determine whether the number of tasks being executed by the platform reaches the maximum concurrent execution number; if the maximum concurrent execution number is not reached, determine whether the RPA process task contains instructions to be executed; if it contains instructions to be executed, determine whether the instructions to be executed are concurrently executable instructions; if they are concurrently executable instructions, directly execute the instructions to be executed; if they are non-concurrently executable instructions, execute the instructions to be executed after obtaining the resources required to execute the instructions to be executed; if it does not contain instructions to be executed or the resource acquisition fails, terminate the current execution task; if the maximum concurrent execution number is reached, add the RPA process task to the cache queue and wait for execution. In this process, since the various instructions in the RPA process tasks are classified in advance, some instructions that can be executed concurrently can be executed concurrently. For some instructions that cannot be executed concurrently, since the current platform has not reached the maximum number of concurrent executions, the instructions can be executed by obtaining resources. In this way, RPA process tasks can be executed concurrently on a computer, thereby making full use of computer resources and improving the utilization rate of computer resources.
[0066] In one embodiment, determining whether the to-be-executed instruction is a concurrently executable instruction in S130 may include:
[0067] S131: Determine the instruction attribute corresponding to the instruction to be executed, wherein the instruction attribute is obtained by clustering and dividing all instructions in the historical RPA process tasks received by this platform in advance, and the instruction attribute includes concurrently executable instructions and non-concurrently executable instructions.
[0068] S132: Determine whether the to-be-executed instruction is an instruction that can be executed concurrently according to the instruction attribute.
[0069] In this embodiment, when the RPA platform determines whether the instruction to be executed is an instruction that can be executed concurrently, it can first determine the execution attribute corresponding to the instruction to be executed, and then determine whether it is an instruction that can be executed concurrently based on the instruction attribute.
[0070] It can be understood that the RPA platform in this application clusters all instructions in all historical RPA process tasks received by the platform in advance, and divides the instructions in the historical RPA process tasks into concurrently executable instructions and non-concurrently executable instructions, that is, instruction attributes, based on the clustering results. In this way, after receiving the RPA process task sent by the server, the instruction attributes of the instructions to be executed in the RPA process task can be used to determine whether it is a concurrently executable instruction, thereby effectively improving the recognition efficiency.
[0071] In one embodiment, the RPA platform may include a resource control module and a task execution module corresponding to the RPA process task.
[0072] Indicatively, Figure 2 As shown, Figure 2 A flow chart of obtaining resources required for executing instructions to be executed provided in an embodiment of the present application; after obtaining the resources required for executing the instructions to be executed in S150, executing the instructions to be executed may include:
[0073] S151: Using the task execution module to send a resource application instruction to the resource control module, wherein the resource application instruction includes a resource lock to be applied for, and the resource lock corresponds to a resource type in the computer.
[0074] S152: Determine whether the resource lock is occupied through the resource control module; if not, execute S153; if occupied, execute S154.
[0075] S153: Lock the resource lock through the resource control module, and return a request response to the task execution module, so that the task execution module executes the to-be-executed instruction.
[0076] S154: Monitor the resource lock through the resource control module, and regularly push the usage of the resource lock to the task execution module until it is monitored that the resource lock is not occupied.
[0077] In this embodiment, the RPA platform may include not only a task allocation module, but also a task execution module and a resource control module. The task execution module may have multiple instances in the RPA platform. When each task is executed, a task execution module will be started, and the corresponding task will be executed through the task execution module. The resource control module is a singleton in the platform, so there is only one instance.
[0078] In a specific implementation, the RPA platform of the present application can use the task execution module corresponding to the RPA process task issued this time to send a resource application instruction to the resource control module. When the task execution module starts the instance, it will generate a unique identifier. When applying for resources from the resource control module, this unique identifier, the execution instruction ID, and the resource ID to be applied for (such as mouse, keyboard, desktop, sound, etc., which require exclusive resources) can be passed to the resource control module. In other words, the resource application instruction includes a resource lock to be applied for, and the resource lock corresponds to the resource type in the computer. For example, the present application can subdivide the resource types of the computer, such as mouse resources, keyboard resources, desktop resources, com component resources, etc. Different resources may be executed concurrently, so the application of resource locks in the present application is made for subdivided resource types.
[0079] Furthermore, after the task execution module sends a resource application instruction to the resource control module, the resource control module can determine whether the resource lock applied for by the resource application instruction is occupied. If not, the resource lock can be locked and a request response can be returned to the task execution module. After receiving the response, the task execution module can execute the instruction to be executed. If occupied, the resource control module can monitor the usage of the resource lock and regularly push the usage of the resource lock to the task execution module, so that when the task execution module determines that the resource lock is not occupied, it can promptly send the resource application instruction to the resource control module again.
[0080] In one embodiment, before monitoring the resource lock by the resource control module and regularly pushing the usage of the resource lock to the task execution module in S154, the method may further include:
[0081] The task execution module subscribes to a resource lock push message corresponding to the resource type to the resource control module according to the resource type required by the instruction to be executed.
[0082] In this embodiment, after the task execution module is started, it can subscribe to the resource lock push message corresponding to the resource type to the resource control module according to the resource type required for the currently executed instruction to be executed. The resource lock push message includes but is not limited to the usage of the resource lock and the occupant of the resource lock, that is, the specific task execution module. In this way, the task execution module can apply for the resource lock in time according to the resource lock push message.
[0083] In one embodiment, the method may further include:
[0084] S155: After the current execution task is completed, a resource release instruction is sent to the resource control module through the task execution module.
[0085] S156: After receiving the resource release instruction through the resource control module and releasing the resource lock corresponding to the resource release instruction, the usage status of the resource lock is sent to the task execution module that subscribes to the resource lock push message, so that the corresponding task execution module sends the resource application instruction again.
[0086] In this embodiment, after the task execution module completes the task, it can also send a resource release instruction to the resource control module. After receiving the resource release instruction, the resource control module can release the corresponding resource lock, and send the usage status of the resource lock to the task execution module that pushes the resource lock message, so that the corresponding task execution module can send the resource application instruction again and obtain the corresponding resources.
[0087] In one embodiment, the method may further include:
[0088] S157: The resource control module periodically checks whether the task execution module that applies for resources has any abnormality, and terminates the task and releases the resources of the task execution module that has any abnormality.
[0089] In this embodiment, after each successful resource application, the resource control module will record the ID of the task execution module that applied for the resource, the resource information applied for, and the time of application. If a new application comes in later, it will check whether the resource has been occupied in the above records. If it is occupied, the resource occupation information will be returned.
[0090] Furthermore, the resource control module of the present application can also use heartbeats to regularly detect whether there are any abnormalities in the task execution module that applies for resources, terminate the tasks and release the resources for the task execution module that has the abnormality, and report the abnormality in a timely manner, thereby facilitating maintenance.
[0091] In one embodiment, the method may further include:
[0092] S158: The task execution module periodically checks whether the resource control module has any abnormality, and when an abnormality occurs, terminates the task execution and reports the abnormality to the server.
[0093] In this embodiment, the task execution module can not only execute tasks, but also periodically check whether there is any abnormality in the resource control module. For example, the task execution module of the present application can be configured to determine that there is an abnormality in the resource control module if no push message is received within the push cycle of 3 subscription messages. At this time, the task execution can be terminated and the abnormality can be reported. This can effectively monitor the working status of the resource control module so that timely maintenance can be performed.
[0094] The RPA process concurrent execution device provided in an embodiment of the present application is described below. The RPA process concurrent execution device described below and the RPA process concurrent execution method described above can be referenced to each other.
[0095] In one embodiment, Figure 3 As shown, Figure 3 A schematic diagram of the structure of an RPA process concurrent execution device provided in an embodiment of the present application; the present application also provides an RPA process concurrent execution device, which is applied to an RPA platform installed on a computer, and may include a concurrent number determination module 210, a to-be-executed instruction determination module 220, a concurrently executable instruction determination module 230, a first instruction execution module 240, a second instruction execution module 250, an execution task end module 260, and a waiting execution module 270, which specifically include the following:
[0096] The concurrent number determination module 210 is used to determine whether the number of tasks being executed by the platform has reached the maximum concurrent execution number after receiving the RPA process task sent by the server.
[0097] The to-be-executed instruction determination module 220 is used to determine whether the RPA process task contains to-be-executed instructions if the maximum concurrent execution number has not been reached.
[0098] The concurrently executable instruction determination module 230 is used to determine whether the to-be-executed instruction is a concurrently executable instruction if the to-be-executed instruction is included.
[0099] The first instruction execution module 240 is configured to directly execute the to-be-executed instruction if the instruction is concurrently executable.
[0100] The second instruction execution module 250 is used for, if the instruction is not executable concurrently, acquiring resources required to execute the instruction to be executed, and then executing the instruction to be executed.
[0101] The task execution ending module 260 is used to end the current task execution if no instructions to be executed are included or resource acquisition fails.
[0102] The waiting execution module 270 is used to add the RPA process task to the cache queue to wait for execution if the maximum concurrent execution number is reached.
[0103] In the above embodiment, the method is applied to an RPA platform installed on a computer. After receiving the RPA process task sent by the server, the RPA platform can first determine whether the number of tasks being executed by the platform reaches the maximum concurrent execution number; if the maximum concurrent execution number is not reached, determine whether the RPA process task contains instructions to be executed; if it contains instructions to be executed, determine whether the instructions to be executed are concurrently executable instructions; if they are concurrently executable instructions, directly execute the instructions to be executed; if they are non-concurrently executable instructions, execute the instructions to be executed after obtaining the resources required to execute the instructions to be executed; if it does not contain instructions to be executed or the resource acquisition fails, terminate the current execution task; if the maximum concurrent execution number is reached, add the RPA process task to the cache queue and wait for execution. In this process, since the various instructions in the RPA process tasks are classified in advance, some instructions that can be executed concurrently can be executed concurrently. For some instructions that cannot be executed concurrently, since the current platform has not reached the maximum number of concurrent executions, the instructions can be executed by obtaining resources. In this way, RPA process tasks can be executed concurrently on a computer, thereby making full use of computer resources and improving the utilization rate of computer resources.
[0104] In one embodiment, the present application also provides a computer-readable storage medium, which stores computer-readable instructions. When the computer-readable instructions are executed by one or more processors, the one or more processors execute the steps of the RPA process concurrent execution method as described in any of the above embodiments.
[0105] In one embodiment, the present application also provides a computer device, including: one or more processors, and a memory.
[0106] The memory stores computer-readable instructions, and when the computer-readable instructions are executed by the one or more processors, the steps of the RPA process concurrent execution method described in any one of the above embodiments are performed.
[0107] Indicatively, Figure 4 As shown, Figure 4 This is a schematic diagram of the internal structure of a computer device provided in an embodiment of the present application. The computer device 300 may be provided as a server. Figure 4, the computer device 300 includes a processing component 302, which further includes one or more processors, and a memory resource represented by a memory 301, for storing instructions executable by the processing component 302, such as an application. The application stored in the memory 301 may include one or more modules, each corresponding to a set of instructions. In addition, the processing component 302 is configured to execute instructions to perform the RPA process concurrent execution method of any of the above embodiments.
[0108] The computer device 300 may further include a power supply component 303 configured to perform power management of the computer device 300, a wired or wireless network interface 304 configured to connect the computer device 300 to a network, and an input / output (I / O) interface 305. The computer device 300 may operate based on an operating system stored in the memory 301, such as Windows Server TM, Mac OS X TM, Unix TM, Linux TM, Free BSD TM, or the like.
[0109] Those skilled in the art will understand that Figure 4 The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine certain components, or have a different arrangement of components.
[0110] Finally, it should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article 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, article or device. In the absence of further restrictions, the elements defined by the sentence "comprise a ..." do not exclude the presence of other identical elements in the process, method, article or device including the elements.
[0111] The various embodiments in this specification are described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The various embodiments can be combined as needed, and the same or similar parts can refer to each other.
[0112] The above description of the disclosed embodiments enables those skilled in the art to implement or use the present application. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present application. Therefore, the present application will not be limited to the embodiments shown herein, but will conform to the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A RPA process concurrent execution method, applied to an RPA platform installed on a computer, characterized in that: The method comprises: After receiving the RPA process tasks sent by the server, determine whether the number of tasks being executed on this platform has reached the maximum number of concurrent executions; If the maximum number of concurrent executions is not reached, determining whether the RPA process task contains instructions to be executed; If the to-be-executed instruction is included, determining whether the to-be-executed instruction is an instruction that can be executed concurrently; If it is an instruction that can be executed concurrently, directly execute the instruction to be executed; If the instruction is not executable concurrently, then after acquiring resources required to execute the instruction to be executed, execute the instruction to be executed; If there is no instruction to be executed or resource acquisition fails, the execution of this task will be terminated; If the maximum number of concurrent executions is reached, the RPA process task is added to the cache queue and waits for execution.
2. The RPA process concurrent execution method according to claim 1, characterized in that: The determining whether the to-be-executed instruction is an instruction that can be executed concurrently includes: Determine the instruction attribute corresponding to the to-be-executed instruction, wherein the instruction attribute is obtained by clustering and dividing all instructions in the historical RPA process tasks received by the platform in advance, and the instruction attribute includes concurrently executable instructions and non-concurrently executable instructions; Determine whether the to-be-executed instruction is an instruction that can be executed concurrently according to the instruction attribute.
3. The RPA process concurrent execution method according to claim 1 or 2, characterized in that: The RPA platform includes a resource control module and a task execution module corresponding to the RPA process task; After acquiring the resources required to execute the instruction to be executed, executing the instruction to be executed includes: Using the task execution module to send a resource application instruction to the resource control module, wherein the resource application instruction includes a resource lock to be applied for, and the resource lock corresponds to a resource type in the computer in a one-to-one manner; Determining whether the resource lock is occupied by the resource control module; If it is not occupied, the resource lock is locked by the resource control module, and a request response is returned to the task execution module so that the task execution module executes the instruction to be executed; If it is occupied, the resource lock is monitored by the resource control module, and the usage of the resource lock is pushed to the task execution module at regular intervals until it is monitored that the resource lock is not occupied.
4. The RPA process concurrent execution method according to claim 3, characterized in that: Before monitoring the resource lock by the resource control module and regularly pushing the usage of the resource lock to the task execution module, the method further includes: The task execution module subscribes to a resource lock push message corresponding to the resource type to the resource control module according to the resource type required by the instruction to be executed.
5. The RPA process concurrent execution method according to claim 4, characterized in that: The method further comprises: When the current execution task is completed, a resource release instruction is sent to the resource control module through the task execution module; After receiving the resource release instruction through the resource control module and releasing the resource lock corresponding to the resource release instruction, the usage of the resource lock is sent to the task execution module that subscribes to the resource lock push message, so that the corresponding task execution module sends the resource application instruction again.
6. The RPA process concurrent execution method according to claim 3, characterized in that: The method further comprises: The resource control module periodically checks whether a task execution module that applies for resources has any abnormality, and terminates the task and releases the resources of the task execution module that has any abnormality.
7. The RPA process concurrent execution method according to claim 3, characterized in that: The method further comprises: The task execution module periodically checks whether the resource control module has any abnormality, and when an abnormality occurs, terminates the task execution and reports the abnormality to the server.
8. An RPA process concurrent execution device, applied to an RPA platform installed on a computer, characterized in that: include: The concurrent number determination module is used to determine whether the number of tasks being executed on the platform has reached the maximum concurrent execution number after receiving the RPA process tasks sent by the server; A module for determining instructions to be executed, used to determine whether the RPA process task contains instructions to be executed if the maximum number of concurrent executions is not reached; A concurrently executable instruction determination module, used for determining whether the to-be-executed instruction is a concurrently executable instruction if the to-be-executed instruction is included; A first instruction execution module, configured to directly execute the instruction to be executed if the instruction is concurrently executable; A second instruction execution module, configured to execute the instruction to be executed after acquiring resources required to execute the instruction to be executed if the instruction is not executable concurrently; The task execution end module is used to end the task if it does not contain instructions to be executed or resource acquisition fails; The waiting execution module is used to add the RPA process task to the cache queue to wait for execution if the maximum concurrent execution number is reached.
9. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer-readable instructions, and when the computer-readable instructions are executed by one or more processors, the one or more processors execute the steps of the RPA process concurrent execution method as described in any one of claims 1 to 7.
10. A computer device, characterized in that: include: one or more processors, and memory; The memory stores computer-readable instructions, and when the computer-readable instructions are executed by the one or more processors, the steps of the RPA process concurrent execution method as described in any one of claims 1 to 7 are performed.