WO2015070705A1 - 一种业务流程调度的计算机设备、方法和装置 - Google Patents

一种业务流程调度的计算机设备、方法和装置 Download PDF

Info

Publication number
WO2015070705A1
WO2015070705A1 PCT/CN2014/089703 CN2014089703W WO2015070705A1 WO 2015070705 A1 WO2015070705 A1 WO 2015070705A1 CN 2014089703 W CN2014089703 W CN 2014089703W WO 2015070705 A1 WO2015070705 A1 WO 2015070705A1
Authority
WO
WIPO (PCT)
Prior art keywords
transaction
task
thread
asynchronous task
scheduled
Prior art date
Application number
PCT/CN2014/089703
Other languages
English (en)
French (fr)
Inventor
周俊杰
摩西⋅魏玛那⋅娜拉西马哈
哈弗里⋅乌帕萨娜
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP14862971.0A priority Critical patent/EP3051414A4/en
Priority to JP2016530910A priority patent/JP6223569B2/ja
Publication of WO2015070705A1 publication Critical patent/WO2015070705A1/zh
Priority to US15/153,204 priority patent/US10453010B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Definitions

  • the present invention relates to a process management technology, and in particular, to a computer device, method and apparatus for business process scheduling.
  • a workflow is a business process in which related business activities are connected to each other in a time-series or logical relationship.
  • documents, information, or tasks are passed, processed, or executed between multiple participants in accordance with organizational specifications.
  • the most important feature of workflow technology is the automation of part or whole of the business process in the computer application environment. These processes usually refer to the activities of people and machines, such as information technology (IT, Information Technology) applications and tool interaction. The process and so on.
  • a workflow consists of a set of tasks (or activities) and their mutual order relationship, as well as the start and end conditions of the process and tasks, and a description of each task.
  • Workflow management system refers to the system of defining, creating and executing workflows. It mainly provides the following three aspects of functional support: building functions, defining and modeling workflow processes and their constituent activities; running control functions in the operating environment. Manage workflow processes, schedule activities in the workflow process; run interactive functions, interact with users (participants or controllers of business work) and external applications during workflow operations.
  • BPM Business Process Management
  • middleware suites generally consisting of modeling tools (for business process modeling), BPM engines (for business process drivers), process management consoles, and technology framework platforms.
  • API application programming interface
  • Figure 1 shows a typical business process diagram using BPM orchestration. From the synchronization information to the completion of the order is a complete account opening process, in which each part of the synchronization information, synchronization price to completion order is a task, each task The services of the service are configured on the top, and the services are sequentially executed in the order in which they are arranged in advance in FIG. Each task corresponds to a node when the process schedule is executed. Since the account opening process itself is not a problem of concern to the present invention, it will not be described in detail herein.
  • customer requirements include:
  • the process can start to execute each business service until the end according to the business objectives and the logical configuration is correct;
  • the process can record the execution information of each step for business tracking and query
  • the visual process orchestration tool is first used to complete the service configuration and sequence arrangement of the business process definition, and the BPM engine completes the process according to the programmed input process and the call request according to the above-mentioned programmed process definition. Drive before the completion.
  • the BPM engine flow process is persisted to the database, and the transaction mechanism is used in the persistence process to ensure data consistency.
  • the business and BPM platforms need to use the same transaction framework, such as the Spring transaction framework or other similar transaction framework.
  • the interface that the service initiates to invoke the BPM platform API also needs to configure declarative transactions. Declarative transactions refer to the way transactions are handled in the way they are declared in the configuration file.
  • the advantage of using declarative transactions is that when you change transaction management, you only need to reconfigure them in the configuration file, without having to change the code, and recompile.
  • the business call starts the process API, and in the process of driving the process forward, due to the use of transaction control, if an abnormality occurs in one of the nodes in the middle, the transaction will roll back to the transaction. It is not possible to roll back to the exception node, nor to resume execution from the exception node.
  • the prior art cannot satisfy the business and the BPM platform can maintain data consistency, and can ensure that the process terminates at the abnormal node when an abnormality occurs, and then resumes execution from the abnormal node.
  • the embodiment of the invention provides a computer device, a method and a device for scheduling business processes, so that the service and the BPM platform can maintain data consistency, and can ensure that the process terminates at the abnormal node when an abnormality occurs, and the execution is started from the abnormal node when the recovery occurs.
  • a computer apparatus for performing process scheduling for scheduling execution of a process, the process comprising at least one node, the computer device comprising: a memory and a processor, wherein the memory is for storing An instruction of a computer device; the processor is configured to execute an instruction in the memory to complete the following steps:
  • the asynchronous task is executed using a second thread.
  • the processor is further configured to put the asynchronous task into a queue of a task to be scheduled of a first process engine process to which the first thread belongs.
  • the asynchronous task is placed in a queue of a task to be scheduled of a first process engine process to which the first thread belongs
  • the method includes: submitting an event callback listener according to the registered transaction, and when the transaction executed by the first thread is successfully submitted, the asynchronous task is placed in the queue of the task to be scheduled of the first process engine process.
  • a method for scheduling a business process including:
  • the asynchronous task is executed using a second thread.
  • the method further includes: placing the asynchronous task into a process of the first process engine to which the first thread belongs Scheduled in the task queue.
  • the method further includes: registering a transaction commit event callback listener;
  • the placing the asynchronous task into the to-be-scheduled task queue of the first process engine process to which the first thread belongs includes: when the transaction successfully executed by the first thread is monitored, the asynchronous task is placed The queue of the task to be scheduled of the first process engine process is entered.
  • the method further includes: persisting the asynchronous task;
  • the submitting the transaction executed by the first thread further comprises: saving the persistent asynchronous task to a database. If the asynchronous task is not executed, the first engine process to which the second thread belongs is abnormally terminated, and the second process engine process acquires the asynchronous task from the database, and schedules execution of the asynchronous task.
  • a third aspect provides a process scheduling apparatus, configured to execute a process, where the process includes at least one node, and the process scheduling apparatus includes: a determining unit, a creating unit, a transaction submitting unit, and an executing unit;
  • the determining unit is configured to determine that the node to be scheduled is configured with a transaction split point
  • the creating unit is configured to create an asynchronous task according to the transaction split point determined by the determining unit, where the asynchronous task includes a waiting after the transaction splitting point in the node to be scheduled Scheduling a task;
  • the execution unit is configured to execute, by using a first thread, a transaction including a task other than the asynchronous task in a process, and submit a transaction executed by the first thread; and execute the asynchronous task by using a second thread.
  • a computer readable storage medium having stored therein instructions executable by a computer processor for performing the following steps:
  • the asynchronous task is executed using a second thread.
  • a transaction split point is configured in the process node, and the thread that has scheduled the task except the asynchronous task commits the transaction after the execution is completed. Since the scheduled tasks outside the asynchronous task are submitted in accordance with the transaction mechanism, data consistency is guaranteed.
  • the use of a new thread to schedule the asynchronous task after the transaction split point the transaction split between tasks. When an exception occurs, the process schedule terminates in an asynchronous task, and when it resumes, it starts from an asynchronous task.
  • Figure 1 is a schematic diagram of a typical business process using BPM orchestration.
  • Figure 2 is a schematic diagram of a transaction process using transaction split points.
  • FIG. 3 is a structural diagram of a BMP service application system according to an embodiment of the present invention.
  • FIG. 4 is a structural diagram of a server in an embodiment of the present invention.
  • FIG. 5 is a schematic diagram of a module of a process engine according to an embodiment of the present invention.
  • FIG. 6 is a flowchart of a process scheduling method according to an embodiment of the present invention.
  • FIG. 7 is a flowchart of a process scheduling method according to another embodiment of the present invention.
  • FIG. 8 is a schematic structural diagram of a flow scheduling apparatus according to an embodiment of the present invention.
  • the service API1, the BPM scheduling API, and the service API2 are configured in a declarative transaction T1, and T1 is the outermost transaction.
  • the service API1, the service API2 is a service execution method
  • the BPM scheduling API is a platform scheduling method.
  • the BPM scheduling API pre-configures the inner transaction T2, and T2 is automatically added to the business transaction T1.
  • a transaction splitting point is pre-configured in the BPM scheduling API. According to the transaction splitting point, the inner layer transaction T2 can be submitted in advance, and an inner layer transaction T3 is newly created for the remaining part of the unfinished BPM scheduling API, and the BPM process is controlled by T3. The flow of subsequent nodes.
  • an embodiment of the present invention first submits a transaction consisting of tasks other than the task to be scheduled after the transaction split point, and then uses the new thread to execute the task to be scheduled after the transaction split point in the process, so that The business and BPM platform can maintain data consistency, and can ensure that when an exception occurs, the process terminates at the abnormal node configured with the transaction split point, and resumes execution from the abnormal node during recovery.
  • Processes, transactions, and tasks are representations at the business level, while threads and processes are representations of machine execution levels.
  • the process corresponds to the entire business and can contain multiple tasks.
  • the process is managed by a process.
  • a transaction is executed by one thread, and a thread can contain multiple transactions.
  • a transaction can contain one or more tasks;
  • a task is also called a node when it is executed by a thread.
  • Tasks can be split.
  • a process engine runs a process, a process can contain multiple threads, and threads are driven by processes.
  • FIG. 3 is a structural diagram of a BMP service application system according to an embodiment of the present invention.
  • the service system 301 is used to complete the orchestration deployment and operation scheduling of the business process.
  • a business system can be a cluster system, which is a parallel or distributed system of interconnected computers.
  • the service system 301 may include at least one server, for example, including a server a 302 and a server b 307.
  • the server a302 may specifically include a service module 303 and a BPM engine 304, and the server b has a similar structure to the server a.
  • the service module 303 is configured to receive a service request of the user, and initiate a request for the business process scheduling to the BPM engine 304.
  • the BPM engine 304 is used to read process definitions, drive and schedule processes from the database 308.
  • Database 308 stores process definitions and related data.
  • the servers in the business system 301 can also interact with local business processes 306 or third party business systems (not shown) to schedule the services therein.
  • Business process 306 includes at least one task. As in the example shown in FIG. 3, business process 306 includes task 1, task 2, until task n, n is a natural number greater than two.
  • Business system 301 abstracts business process 306 using BPM modeling tool 305, generates process definitions, and stores them in database 308. Among them, the transaction split point of the process task is configured in the process definition.
  • the process definition includes the nodes corresponding to each task in the process, the relationship between the nodes, input and output data, transaction split points, and so on.
  • the process definition is specifically available in a flowchart, or a static profile representation, stored in a database 308 or a file system.
  • the BPM engine in the server When the BPM engine in the server receives the service scheduling request, it will read the process definition and perform process scheduling. If the scheduled node contains a transaction split point, an asynchronous task is created for the task to be scheduled after the transaction split point.
  • the asynchronous task flow scheduling specifically includes: a task other than the to-be-scheduled task after the transaction splitting point constitutes a transaction, which is executed by one thread; when the thread executing the transaction ends, the corresponding transaction is successfully submitted, after the transaction is split.
  • the task to be scheduled that is, the asynchronous task, is scheduled to be executed by another thread.
  • the asynchronous task will be officially written into the database, in case the process of executing the asynchronous task fails, the BPM engine process in other servers can acquire the asynchronous task.
  • the thread executing the asynchronous task in the BPM engine 304 stays at the node where the abnormality occurs and the scheduling execution is no longer continued. If it is asynchronous If the thread of the task is abnormal, the BPM engine will acquire an idle thread from the asynchronous task scheduling thread pool to execute the asynchronous task and re-execute the asynchronous task. If the current BPM engine process terminates abnormally, the BPM engine process of other servers in the service system, such as server b, will monitor the abnormal termination or receive a notification message that the BPM engine process in server a terminates abnormally, according to the takeover policy. The database completes the unfinished asynchronous task, and resumes the task being executed by the abnormally terminated BPM engine process.
  • FIG. 4 is a schematic block diagram of a server in a service system according to an embodiment of the present invention.
  • the server may be a computer device, and specifically includes a processor-based computer.
  • the server 400 can include a bus 410, a processor 402, a memory 404, an input and output interface 406, and a communication interface 408.
  • Bus 410 can include a path for communicating information between various components of the computer.
  • the processor 402 is configured to process information, execute instructions or operations, and may be a general purpose central processing unit (CPU), a microprocessor, an application specific integrated circuit (ASIC), or one or more for controlling An integrated circuit executed by the program of the present invention.
  • the server also includes one or more memories 404 for storing information and instructions.
  • the memory may be read-only memory (ROM) or other types of static storage devices that can store static information and instructions. Random access memory random Access memory (RAM) or other type of dynamic storage device that can store information and instructions, or disk storage. These memories are coupled to processor 402 via bus 410.
  • ROM read-only memory
  • RAM Random access memory random Access memory
  • Input and output interface 406 can include an input device or an output device.
  • the input device is configured to receive data and information input by the user, such as a keyboard, a mouse, a camera, a scanner, a light pen, a voice input device, a touch screen, and the like.
  • the output device is used to allow output or display of information to the user, including display screens, printers, speakers, and the like.
  • the computing device also includes a network interface 408 that uses devices such as any transceiver to communicate with other devices or communication networks, such as Ethernet, Radio Access Network (RAN), Wireless Local Area Network (WLAN), and the like.
  • the processor 402 can also be coupled to the input and output interface 406, the network interface 408 via the bus 410.
  • the memory 404 holds program instructions for executing the components of the inventive arrangements, including the business module 410, the program of the BPM engine 412. Operating system and other applications can also be saved in memory 404 program.
  • the processor 402 is operative to read and execute programs or instructions in the memory 404 and to communicate with other devices through the network interface 408 during execution. In particular, when processor 402 executes an instruction in memory 404, processor 402 may perform steps 601-604 shown in FIG.
  • FIG. 5 is a schematic structural diagram of a process engine, that is, the BPM engine 412 in FIG. 4.
  • the process engine 510 includes a process parser 511, a task manager 512, and a task executor 513.
  • the process parser 511 is configured to determine that the node to be scheduled is configured with a transaction split point. Specifically, the process parser 511 reads the process definition in the database 308, and parses the process definition to determine whether a transaction split point is configured in the node to be scheduled.
  • the task manager 512 creates an asynchronous task in the execution thread of the currently scheduled process node.
  • the asynchronous task contains unscheduled execution tasks in the process definition after the transaction split point.
  • the asynchronous task is not executed in the current thread, but is scheduled to be executed by another thread, that is, the second thread, after the current thread ends.
  • the task manager 512 also persists the created asynchronous tasks, ready to write to the database.
  • Task manager 512 also registers transaction commit event callbacks for declarative transactions.
  • Transaction commit event callback listener refers to the callback method that is pre-registered when the transaction commit event is listened to. The transaction commit event callback listener is to ensure that the scheduling of the asynchronous task occurs after the transaction commit before the transaction split point.
  • the thread that executes the currently scheduled process node is called the current thread.
  • a thread finishes executing it will return to the outer declarative transaction; the thread returns to indicate the end of the thread, and the new thread can be started.
  • the outermost declarative transaction corresponding to the thread is committed as the thread returns. Since the transaction commit event callback listener has been pre-registered, the task manager 512 will put the created asynchronous task into the thread-sharing BPM engine process according to the pre-registered callback method when the outer transaction is successfully submitted.
  • the task manager 512 also writes the asynchronous task to the database synchronously at the end of the current thread.
  • the task data in the task queue 515 is the same as the task data in the database, except that the task queue is temporarily stored in the memory, and the data in the database can be persistently saved.
  • a thread in the asynchronous task scheduling thread pool will obtain an asynchronous task from the task queue for scheduling. After the scheduling is successful, the asynchronous task will be taken from the asynchronous task. Deleted in the database.
  • the task executor 513 is for executing an asynchronous task using the second thread. There are several idle threads waiting to be enabled in the asynchronous task scheduling thread pool. The second thread is obtained from the asynchronous task scheduling thread pool.
  • the second BPM engine process in the other server monitors that the first BPM engine process is abnormal or receives the first BPM engine process abnormality.
  • the terminated notification message, the second BPM engine process obtains an asynchronous task from the database that the abnormal BPM engine process is not completed, and the task executor of the second BPM engine continues to execute the asynchronous task.
  • the transaction split point is configured in the process node, so that the thread that executes the scheduled task other than the asynchronous task automatically returns to the outer transaction after the execution is completed. Since the outer transaction is submitted in accordance with the transaction mechanism, data consistency is guaranteed. Use the new thread to schedule the asynchronous task after the transaction split point to realize the transaction split between the task nodes. When an exception occurs, the process schedule terminates in the asynchronous task, and the recovery starts from the asynchronous task. At the same time, the thread pool is scheduled through the asynchronous task. Provides a high-performance process execution solution.
  • FIG. 6 is a flowchart of a process scheduling method according to an embodiment of the present invention. The method described below can be performed by the server shown in FIG. 4 or the flow engine shown in FIG. 5.
  • the process engine determines that the node to be scheduled has a transaction split point.
  • transaction split points are pre-configured between nodes in the process or in a node.
  • the configuration of the transaction split point is formatted and stored in the process definition. If the process definition conforms to the Business Process Model and Notation (BPMN) specification, then the activity is used to perform transaction segmentation point storage, such as the extended attributes of the Service Task.
  • BPMN Business Process Model and Notation
  • startEvent id startSimple
  • startSimple name
  • the process engine finds that a node to be scheduled is configured with a transaction split point according to the process definition. For example, using a piece of XML description to define a transaction split point, the XML of the transaction split point The description can be at the beginning or in the middle of the description of the node process definition, and the process engine can resolve to determine that there is a transaction split point configured in the node.
  • the process engine creates an asynchronous task based on the transaction split point.
  • the asynchronous task includes the tasks to be scheduled after the transaction split point in the to-be-scheduled node in the process definition.
  • the asynchronous task can also be persisted. Specifically, the cached asynchronous task is in the database save interface and is ready to be written into the database.
  • the process engine uses the first thread to execute a transaction containing tasks other than the asynchronous task in the process, and when completed, commits the transaction.
  • the first thread ends, and the transaction containing the tasks other than the asynchronous task in the process in the first thread is executed and submitted.
  • the submitted transaction includes the scheduled execution of the task before the transaction split point, which may include the task node in the outer transaction other than the asynchronous task after the transaction split point.
  • the asynchronous task When the transaction executed by the first thread commits, the asynchronous task may be placed in the queue of the task to be scheduled of the first process engine process to which the first thread belongs.
  • the first process engine process may specifically be a process run by the BMP engine. After the transaction executed by the first thread is committed, the asynchronous task is also written to the database.
  • the process engine executes the asynchronous task using a second thread.
  • the first process engine process adopts a new thread, that is, the second thread, executes the asynchronous task, and continues the scheduling process. After the asynchronous task is processed successfully, the process engine deletes the asynchronous task saved in the database.
  • the first process engine process re-acquires an idle thread from the asynchronous task scheduling thread pool, that is, the third thread uses the third thread to schedule the fetch from the queue to be scheduled.
  • Asynchronous task restart the execution of the asynchronous task.
  • the second process engine process monitors the first process engine abnormally terminates or receives the notification message that the first process engine process terminates abnormally, and obtains the uncompleted asynchronous task from the database.
  • the allocation thread schedules execution of the asynchronous task.
  • a transaction split point is configured in the process node, and different thread scheduling is adopted for the asynchronous task, that is, asynchronous thread scheduling, so that the thread executing the node configured with the transaction split point automatically returns after the execution of the first thread is completed.
  • asynchronous thread scheduling the thread executing the node configured with the transaction split point automatically returns after the execution of the first thread is completed.
  • FIG. 7 is a flowchart of a specific process of process scheduling according to an embodiment of the present invention. The steps of this embodiment are performed, and the service flow in FIG. 2 includes a service API1, a BPM scheduling API, and a service API2, and a transaction splitting point is set in the BPM scheduling API.
  • step 701 the process of the BPM engine initiates a process scheduling.
  • the BPM engine initiates a pre-configured transaction in the process definition.
  • the transaction T1 configuration initiated by the BPM engine includes a service API1, a BPM scheduling API, and a service API2, and the transaction T1 is also referred to as an outer transaction.
  • Transaction T1 is executed by one thread, which is also referred to as the current thread.
  • a transaction contains one or more tasks that are executed by one thread and the threads are driven by the BPM engine process.
  • a task is also called a node when it is executed by a thread.
  • Step 703 the BPM engine determines whether the node to be scheduled includes a transaction split point, if not, then proceeds to step 704, and if yes, proceeds to step 705.
  • a transaction splitting point is preset in the BPM scheduling API.
  • Step 704 When the to-be-scheduled node does not include a transaction split point, the BPM engine continues to execute the next node in the current thread.
  • the current thread executes the thread of the currently scheduled process node, that is, the first thread in the embodiment of FIG.
  • Step 705 The BPM engine creates an asynchronous task in the current thread when the transaction split point is found in the node to be scheduled, and is persistent.
  • the asynchronous task includes a task to be scheduled after the transaction splitting point of the BPM scheduling API.
  • Persistence is specifically a cache asynchronous task in the database save interface. The role of persistence is to store data, such as objects in memory, in relational databases, disk files, and XML data files.
  • step 706 the registration transaction commits an event callback listener.
  • a thread-starting method for asynchronous tasks is defined in the registration code of the callback listener.
  • Transaction commit event callback listener guarantees that the thread of the asynchronous task starts After the current thread's transaction is committed.
  • the registration of the transaction submission event callback listener may be after step 705, or may be configured in advance in the process definition.
  • step 707 the current thread is executed, and the outer transaction T1 is submitted as the current thread returns.
  • the submitted transaction T1 contains the business API1, the scheduled task before the transaction split point in the BPM scheduling API, and the service API2.
  • the task to be scheduled after the transaction split point in the BPM scheduling API, that is, the asynchronous task, is not submitted for commit.
  • Step 708 Submit a callback method of the event callback listener according to the registered transaction.
  • the asynchronous task is placed in the task queue to be scheduled by the current process engine process.
  • This task queue can be scheduled by threads in the asynchronous task scheduling thread pool.
  • the asynchronous task scheduling thread pool has a number of idle threads waiting to be enabled in advance.
  • step 709 when the outer transaction T1 is submitted, the asynchronous task is also written into the database. After writing to the database, the asynchronous task can be persisted.
  • the execution of step 709 and step 708 may be in no particular order.
  • step 710 it is monitored whether the current process engine process is abnormally terminated. If the process is abnormally terminated, step 711 is performed. If the process is normal, step 712 is performed.
  • Step 711 The second process engine process acquires an asynchronous task that is not completed by the abnormally terminated process engine process from the database, and the allocation process continues to be scheduled. After the process is complete, the process proceeds to step 713.
  • the second process engine process actively monitors whether other process engine processes are abnormally terminated, or the second process engine process receives a notification message that the first process engine terminates abnormally.
  • step 712 the current BPM engine executes the asynchronous task using the new thread (ie, the second thread), and continues the scheduling. This new thread is taken from the asynchronous task scheduling thread pool. If the asynchronous task is not executed, the thread executing the asynchronous task terminates abnormally, and the BPM engine takes another idle thread from the asynchronous task scheduling thread pool, that is, the third thread, and executes the asynchronous task.
  • step 713 the asynchronous task execution is completed. Asynchronous tasks in the database are deleted.
  • FIG. 8 is a schematic structural diagram of a process scheduling apparatus according to an embodiment of the present invention.
  • the flow scheduling apparatus includes: a determining unit 801, a creating unit 803, and an executing unit 805.
  • a determining unit 801 configured to determine that the node to be scheduled is configured with a transaction split point
  • the creating unit 803 is configured to create an asynchronous task according to the transaction split point determined by the determining unit 801, where the asynchronous task includes a task to be scheduled after the transaction split point in the node to be scheduled;
  • the executing unit 805 is configured to execute, by using the first thread, a transaction including a task other than the asynchronous task in the process, and submit a transaction executed by the first thread; and execute the asynchronous task by using the second thread.
  • the executing unit 805 is further configured to: put the asynchronous task created by the creating unit into the to-be-scheduled task queue of the first process engine process to which the first thread belongs.
  • the execution unit 805 is further configured to submit an event callback listener according to the registered transaction, and when the transaction executed by the first thread is successfully submitted, the asynchronous task is placed in the to-be-scheduled task queue of the first process engine process. in.
  • the executing unit 805 is further configured to: persist the asynchronous task; save the persistent asynchronous task to a database after the committing the transaction executed by the first thread, so that when the asynchronous task is not executed,
  • the second process engine process acquires the asynchronous task from the database, and schedules execution of the asynchronous task.
  • the determining unit 801 determines the transaction split point based on the flow definition stored in the database.
  • the process scheduling apparatus finds that an asynchronous task is created when a transaction split point is configured in the process node, and asynchronous thread scheduling is used for the asynchronous task.
  • the thread that executes the node configured with the transaction split point commits after the execution of the thread, and follows the transaction mechanism to ensure data consistency. Further, the subsequent process flow after the new thread-driven transaction split point is used to implement transaction split between the task nodes.

Abstract

本发明涉及流程管理领域,公开了一种业务流程调度的计算机设备,方法和装置。业务流程调度方法包括:确定待调度的节点配置有事务分割点;根据所述事务分割点,创建异步任务,所述异步任务包含在待调度节点中所述事务分割点之后的待调度任务;使用第一线程执行包括流程中除异步任务之外的任务的事务,提交该第一线程执行的事务,以保障数据一致性;使用第二线程执行所述异步任务,实现任务节点之间的事务分割。

Description

一种业务流程调度的计算机设备、方法和装置
本申请要求于2013年11月14日提交中国专利局、申请号为201310567968.8、发明名称为“一种业务流程调度的计算机设备、方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明涉及流程管理技术,特别涉及一种业务流程调度的计算机设备、方法和装置。
背景技术
工作流是一种由相关业务活动依时序或逻辑关系相互连接而成的业务流程。在业务开展过程中,文档、信息或任务依据组织规范在多个参与者之间传递、处理或执行。工作流技术的最主要特点是业务过程的部分或整体在计算机应用环境下的自动化,这些过程通常是指人与机器相结合的活动,如信息技术(IT,Information Technology)的应用程序以及工具交互的过程等。一个工作流包括一组任务(或活动)及它们的相互顺序关系,还包括流程及任务的启动和终止条件,以及对每个任务的描述。
工作流管理系统是指定义、创建以及执行工作流的系统,主要提供以下三个方面的功能支持:建造功能,对工作流过程及其组成活动定义和建模;运行控制功能,在运行环境中管理工作流过程,对工作流过程中的活动进行调度;运行交互功能,在工作流运行中,与用户(业务工作的参与者或控制者)及外部应用程序进行交互。
目前,工作流技术得到了广泛应用,比如,在企业业务中引入工作流进行业务流程管理。业务流程管理(Business Process Management,BPM)相关的中间件套件,一般由建模工具(负责业务流程的建模),BPM引擎(负责业务流程的驱动),流程管理控制台,技术框架平台构成,能够嵌入到业务系统中,以对上层 业务提供流程建模和引擎流程实例调度应用编程接口(Application Programming Interface,API)的方式,帮助业务完成流程的编排部署和运行调度,为企业打造符合其业务发展的各种流程。
图1所示即是一个使用BPM编排的典型业务流程示意图,从同步信息到完成订单是个完整的开户流程,其中同步信息、同步价格至完成订单中的每一环节均为一个任务,每个任务上都配置了业务的服务,各个服务按照图1预先编排好的顺序依次执行。其中,每一个任务在流程调度执行时,对应一个节点。由于开户流程本身并不是本发明关心的问题,所以在此不作详细说明。
对于业务流程,客户的要求包括:
1.流程能够按照业务目标,在逻辑配置正确的前提下开始执行各个业务服务直到结束;
2.流程能够记录每一步的执行信息,供业务跟踪查询;
3.流程向前流转要与业务数据的变化保持数据一致性;
4.流程某个节点发生异常,则停在异常节点,并支持失败重试或人工干预,直到能够再次执行下去,且已经完成的业务服务调用不受影响;
5.当引擎进程异常终止,需要支持进程重启后从尚未完成的任务恢复执行;
6.流程调度性能要高。
现有技术的一种方案中,首先使用可视化的流程编排工具,完成业务流程定义的服务配置和顺序编排,BPM引擎基于上述编排好的流程定义,依据业务的输入和调用请求,完成流程的向前驱动直至完成。BPM引擎流转过程会持久化到数据库,且持久化过程中采用事务机制控制,保证数据一致性。为保证BPM平台和业务之间的事务被统一调度,则业务和BPM平台需要使用相同的事务框架,如Spring事务框架或其它类似的事务框架。业务发起调用BPM平台API的接口也需要配置声明式事务。声明式事务指采用在配置文件中声明的方式来处理事务。采用声明式事务的好处是改变事务管理时,只需在配置文件中重新配置,无需改变代码,重新编译。业务调用启动流程API,驱动流程向前流转的过程中,由于采用事务控制,如果中间某一节点发生异常,事务会回滚到事 务开始点,而不能回滚到异常节点,也不支持从异常节点恢复执行。
因此,在业务流程调度过程中,现有技术无法满足业务和BPM平台既能够保持数据一致性,又能够保证出现异常时流程终止在异常节点,后续从异常节点重新恢复执行。
发明内容
本发明实施例提供一种业务流程调度的计算机设备、方法和装置,使业务和BPM平台能够保持数据一致性,又能够保证出现异常时流程终止在异常节点,恢复时从异常节点开始执行。
本发明实施例的技术方案是这样实现的:
第一方面,提供了一种执行流程调度的计算机设备,用于调度执行一个流程,所述流程包括至少一个节点,所述计算机设备包括:存储器和处理器,其中,所述存储器用于存储所述计算机设备的指令;所述处理器用于执行所述存储器中的指令以完成以下步骤:
确定待调度的节点配置有事务分割点;
根据所述事务分割点,创建异步任务,所述异步任务包含所述待调度的节点中所述事务分割点之后的待调度任务;
使用第一线程执行包含流程中除所述异步任务之外的任务的事务,提交所述第一线程执行的事务;
使用第二线程执行所述异步任务。
在第一方面的第一种可能的实现方式中,所述处理器进一步用于将所述异步任务放入所述第一线程所属的第一流程引擎进程的待调度任务队列中。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述将所述异步任务放入所述第一线程所属的第一流程引擎进程的待调度任务队列中包括:根据注册的事务提交事件回调监听,监听到所述第一线程执行的事务成功提交时,将所述异步任务放入所述第一流程引擎进程的待调度任务队列中。
第二方面,提供了一种业务流程调度方法,包括:
确定待调度的节点配置有事务分割点;
根据所述事务分割点,创建异步任务,所述异步任务包含所述待调度的节点中在所述事务分割点之后的待调度任务;
使用第一线程执行包含流程中除所述异步任务之外的任务的事务,提交所述第一线程执行的事务;
使用第二线程执行所述异步任务。
在第二方面的第一种可能的实现方式中,在所述提交第一线程执行的事务后,进一步包括,将所述异步任务放入所述第一线程所属的第一流程引擎进程的待调度任务队列中。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,,所述方法进一步包括:注册事务提交事件回调监听;
所述将所述异步任务放入所述第一线程所属的第一流程引擎进程的待调度任务队列中具体包括:监听到所述第一线程执行的事务成功提交时,将所述异步任务放入所述第一流程引擎进程的待调度任务队列中。
在第二方面的第三种可能的实现方式中,在创建异步任务后进一步包括:将所述异步任务持久化;
所述提交第一线程执行的事务后进一步包括:将所述持久化的异步任务保存到数据库中。若所述异步任务未执行完毕,所述第二线程所属的第一引擎进程异常终止,第二流程引擎进程从所述数据库中获取所述异步任务,调度执行所述异步任务。
第三方面,提供了一种流程调度装置,用于执行一个流程,所述流程包括至少一个节点,所述流程调度装置包括:确定单元,创建单元,事务提交单元和执行单元;
所述确定单元,用于确定待调度的节点配置有事务分割点;
所述创建单元,用于根据所述确定单元确定的所述事务分割点,创建异步任务,所述异步任务包含在所述待调度的节点中所述事务分割点之后的待 调度任务;
所述执行单元,用于使用第一线程执行包含流程中除所述异步任务之外的任务的事务,并提交所述第一线程执行的事务;使用第二线程执行所述异步任务。
第四方面,提供了一种计算机可读存储介质,其中保存有可被计算机处理器执行的指令,所述指令用于执行以下步骤:
确定待调度的节点配置有事务分割点;
根据所述事务分割点,创建异步任务,所述异步任务包含所述待调度的节点中在所述事务分割点之后的待调度任务;
使用第一线程执行包含流程中除异步任务之外的任务的事务,提交所述第一线程执行的事务;
使用第二线程执行所述异步任务。
可见,采用本发明实施例的技术方案,在流程节点中配置事务分割点,执行除异步任务外已调度任务的线程在执行完毕后提交事务。由于异步任务外的已调度任务遵循事务机制来提交,保障了数据一致性。使用新的线程调度事务分割点后的异步任务,实现了任务之间的事务分割。当出现异常时流程调度终止在异步任务,恢复时从异步任务开始执行。
附图说明
图1为现有的一个使用BPM编排的典型业务流程示意图。
图2为一种采用事务分割点的事务处理流程示意图。
图3为本发明实施例的一种BMP业务应用系统架构图。
图4为本发明实施例中服务器的组成架构图。
图5为本发明实施例的一种流程引擎的模块示意图。
图6是本发明实施例的一种流程调度方法的流程图。
图7是本发明另一实施例的流程调度方法的流程图。
图8是本发明实施例的流程调度装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步地详细说明。
为实现事务执行不成功时,能回滚到中间某一节点,而不是回滚到事务的开始节点,可在流程中新增事务分割点(savepoint)到某一节点上,对每一个节点分别进行持久化。当BPM引擎驱动流程过程中遇到事务分割点时,将事务分割点前的事务先提交,再创建一个新的事务,来控制BMP流程后续节点的执行。
具体实现的方式以图2如示的场景为例来说明:业务API1,BPM调度API和业务API2被配置在一个声明式事务T1中,T1是最外层事务。其中,业务API1,业务API2为业务的执行方法,BPM调度API为平台的调度方法。BPM调度API会预先配置内层事务T2,T2会自动加入业务事务T1中。在BPM调度API中预先配置有事务分割点,根据该事务分割点,可以提前提交内层事务T2,并为未完成的BPM调度API的剩余部分流程新建内层事务T3,由T3控制BPM流程的后续节点的流转。由于采用统一事务管理,T2提交的同时会将T1也提前提交,而T3无法管理到业务API2,业务API2失去了事务管理,会导致数据不一致。因此,该方案虽然能够将事务回滚到异常节点,但不能保持数据一致性。为解决该问题,本发明的实施例通过先提交除事务分割点之后的待调度任务之外的任务所组成的事务,然后使用新的线程来执行流程中事务分割点后的待调度任务,使业务和BPM平台能够保持数据一致性,又能够保证出现异常时流程终止在配置有事务分割点的异常节点,恢复时从该异常节点继续执行。
为便于理解,对流程、事务、任务、线程和进程这些术语进行说明。流程、事务、任务属业务层面的表述,而线程、进程是机器执行层面的表述。流程对应整个业务,可包含多个任务。流程被一个进程管理。一个事务由一个线程来执行,一个线程可包含多段事务。一个事务可包含一个或多个任务; 一个任务在被线程执行时也称为一个节点。任务是可以分割的。一个流程引擎中运行有一个进程,一个进程可包含多个线程,线程被进程所驱动。
图3为本发明实施例的一个BMP业务应用系统架构图。业务系统301用于完成业务流程的编排部署和运行调度。业务系统可以是集群系统,该集群系统是由互相连接的计算机组成的并行或分布式系统。作为一种实施方式,业务系统301可包括至少一个服务器,例如包括服务器a 302、服务器b307。服务器a302具体可包括业务模块303和BPM引擎304,服务器b与服务器a有相似的结构。业务模块303用于接收用户的业务请求,向BPM引擎304发起业务流程调度的请求。BPM引擎304用于从数据库308读取流程定义,驱动和调度流程。数据库308存储流程定义及相关的数据。
业务系统301中的服务器还可以与本地的业务流程306或第三方业务系统(图未示出)进行交互,调度其中的服务。业务流程306包含至少一个任务。如图3所示的例子,业务流程306包括任务1,任务2,直至任务n,n为大于2的自然数。业务系统301使用BPM建模工具305抽象出业务流程306,生成流程定义并存储到数据库308中。其中,在流程定义中配置流程任务的事务分割点。流程定义中包含流程中各任务对应的节点、节点之间的关系,输入输出数据,事务分割点等。该流程定义具体可用流程图,或静态配置文件表示,存储在数据库308或文件系统中。当服务器中的BPM引擎收到业务调度请求,则会读取该流程定义,进行流程调度。若调度到的节点包含有事务分割点,为事务分割点之后的待调度任务创建异步任务。异步任务流程调度具体包括:除事务分割点之后的待调度任务以外的任务组成一个事务,由一个线程执行;当执行该事务的线程结束,相对应的事务成功提交后,该事务分割点之后的待调度任务,即异步任务,由另一线程调度执行。同时,该异步任务会被正式写入数据库,以备执行该异步任务的进程故障时,其他服务器中的BPM引擎进程可以获取该异步任务。
当业务系统301的异步任务流程调度发生异常,则BPM引擎304中执行该异步任务的线程停留在发生异常的节点不再继续调度执行。若是执行异步 任务的线程异常,BPM引擎会从异步任务调度线程池中再获取一个空闲线程执行该异步任务,重新执行异步任务。若是当前BPM引擎进程异常终止,则业务系统中的其他服务器,如服务器b,的BPM引擎进程会监控到这一异常终止或收到服务器a中BPM引擎进程异常终止的通知消息,根据接管策略从数据库中获取未完成的异步任务,把异常终止的BPM引擎进程正在执行的任务恢复继续执行。
图4是本发明实施例提供的业务系统中服务器的示意性框图。本实施例中,服务器可以为一计算机设备,具体包括一基于处理器的计算机。如图4所示,服务器400可包括总线410,处理器402,存储器404,输入输出接口406,通信接口408。总线410可包括一通路,在计算机各个部件之间传送信息。处理器402用于处理信息,执行指令或操作,具体可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路application-specific integrated circuit(ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。服务器还包括一个或多个存储器404,用于存储信息和指令,存储器可以是只读存储器read-only memory(ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器random access memory(RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是磁盘存储器。这些存储器通过总线410与处理器402相连接。
输入输出接口406可包括输入装置或输出装置。输入装置用以接收用户输入的数据和信息,例如键盘,鼠标、摄像头,扫描仪,光笔,语音输入装置,触摸屏等。输出装置用以允许输出或显示信息给用户,包括显示屏,打印机,扬声器等。计算设备还包括一个网络接口408,该网络接口使用任何收发器一类的装置,以便与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(WLAN)等。处理器402也能通过总线410与输入输出接口406,网络接口408相连接。
存储器404保存有执行本发明方案的部件的程序指令,包括业务模块410,BPM引擎412的程序。存储器404中还可以保存操作系统和其他应用 程序。处理器402用于读取并执行存储器404中的程序或者指令,并在执行的过程中通过网络接口408与其它设备进行通信。具体地,当处理器402执行存储器404中的指令时,处理器402可执行图6中所示的步骤601-604。
图5为流程引擎的结构示意图,该流程引擎即图4中的BPM引擎412。如图5所示,流程引擎510包括流程解析器511,任务管理器512和任务执行器513。流程解析器511用于确定待调度的节点配置有事务分割点。具体地,流程解析器511读取数据库308中的流程定义,并对流程定义进行解析,确定该待调度的节点中是否配置有事务分割点。在调度过程中,当在待调度的节点中发现预先设置的事务分割点时,任务管理器512在当前被调度的流程节点的执行线程中创建异步任务。该异步任务包含流程定义中在事务分割点之后的未调度执行的任务。该异步任务不在当前线程中执行,而是在当前线程结束后,由另一线程,即第二线程,调度执行。任务管理器512还将创建的异步任务持久化,准备写入数据库。
任务管理器512还会注册声明式事务的事务提交事件回调监听(callback)。事务提交事件回调监听指监听到该事务提交事件,就调用预先注册的回调方法。该事务提交事件回调监听作用在于保证异步任务的调度发生在事务分割点前的事务提交之后。
执行当前被调度的流程节点的线程被称为当前线程。一个线程执行完毕,会返回到外层的声明式事务;线程返回表示本线程结束,新的线程可以启动。当前线程结束,则该线程对应的最外层的声明式事务会随着线程返回而提交。由于已预先注册了事务提交事件回调监听,任务管理器512会在监听到外层事务成功提交时,按预先注册的回调方法,把已创建的异步任务放入线程共享的所属的BPM引擎进程的待调度任务队列515中。任务管理器512在当前线程结束时,还会把该异步任务同步写入到数据库中。任务队列515中的任务数据与数据库中的任务数据是相同的,不同之处在于任务队列是临时存于内存中,数据库中数据可持久保存。异步任务调度线程池中的一个线程会从该任务队列中获取异步任务进行调度,调度成功后会把该异步任务从 数据库中删除。
任务执行器513用于使用第二线程执行异步任务。异步任务调度线程池中预先申请有若干个空闲线程等待启用。该第二线程是从异步任务调度线程池中获取的。
如果异步任务调度过程中,执行该异步任务的第一BPM引擎进程发生异常,则另一服务器中的第二BPM引擎进程会监控到第一BPM引擎进程出现异常或收到第一BPM引擎进程异常终止的通知消息,第二BPM引擎进程从数据库中获取发生异常的BPM引擎进程未完成的异步任务,由第二BPM引擎的任务执行器继续执行该异步任务。
在本实施例中,在流程节点中配置事务分割点,使执行除异步任务之外的已调度任务的线程在执行完毕后自动返回到外层的事务。由于外层的事务遵循事务机制来提交,保障了数据一致性。使用新的线程调度事务分割点后的异步任务,实现任务节点之间的事务分割,当出现异常时流程调度终止在异步任务,恢复时从异步任务开始执行;同时通过异步任务调度线程池的调度提供了高性能的流程执行方案。
图6是本发明一个实施例提供的流程调度方法的流程图。以下描述的方法可以被图4所示的服务器,或图5所示的流程引擎来执行。
在601步骤,流程引擎确定待调度的节点配置有事务分割点。
使用BPM建模工具构建流程图时,在流程的节点之间或某一节点中预先配置有事务分割点。事务分割点的配置被格式化存储在流程定义中。假如,流程定义符合业务流程建模与标注(Business Process Model and Notation,BPMN)规范时,则使用活动(Activity),如业务任务(Service Task)的扩展属性进行事务分割点存储。
例如:<startEvent id="startSimple"name="Start"ufl:asynExecute="true"/>
“asynExecute="true"”表示该节点需异步调度,配置有事务分割点。
流程引擎在调度过程中,根据流程定义发现待调度的某一节点中配置有事务分割点。以使用一段XML描述来定义事务分割点为例,该事务分割点的XML 描述可以在节点流程定义描述的开始或中间,流程引擎均可解析确定出该节点中配置有事务分割点。
在步骤602,根据事务分割点,流程引擎创建异步任务。该异步任务包含流程定义中待调度节点中在事务分割点之后的待调度任务。
创建异步任务后,还可以对该异步任务持久化,具体为缓存异步任务在数据库保存接口中,准备写入数据库。
在步骤603,流程引擎使用第一线程执行包含流程中除异步任务之外的任务的事务,完成后,提交该事务。
第一线程结束,在第一线程中包含了流程中除异步任务以外任务的事务被执行完毕提交。提交的事务包括事务分割点之前的已调度执行的任务,其中可以包括事务分割点之后的,除异步任务以外的外层事务中的任务节点。
第一线程执行的事务提交时,可将异步任务放入第一线程所属的第一流程引擎进程的待调度任务队列中。第一流程引擎进程具体可以是BMP引擎运行的进程。第一线程执行的事务提交后,异步任务还被写入到数据库中。
在步骤604,流程引擎使用第二线程执行所述异步任务。
第一流程引擎进程采用一个新线程,即第二线程,执行该异步任务,继续调度流程。该异步任务处理成功后,流程引擎删除数据库中保存的该异步任务。
若异步任务未执行完毕,第二线程异常终止,则第一流程引擎进程重新从异步任务调度线程池中获取一个空闲线程,即第三线程,使用第三线程调度从待调度任务队列中取出的异步任务,重新开始执行该异步任务。若第一流程引擎进程异常终止,则第二流程引擎进程会监控到第一流程引擎异常终止或收到第一流程引擎进程异常终止的通知消息,从数据库中获取所述未完成的异步任务,分配线程调度执行所述异步任务。
本发明的实施方式中,在流程节点中配置事务分割点,对于异步任务采用不同的线程调度,即异步线程调度,使执行配置有事务分割点的节点的线程在第一线程执行完毕后自动返回到外层的事务。由于外层的事务遵循事务机制来提交,保障了数据一致性。进一步地,使用第二线程驱动事务分割点 后的后续流程流转,实现任务节点之间的事务分割,当出现异常时流程调度终止在异步任务,恢复时从异步任务开始执行;同时通过异步任务调度线程池的调度提供了高性能的流程执行方案。
图7是本发明一个实施例提供的流程调度具体过程的流程图。本实施例的步骤执行,以图2中的业务流程包括业务API1,BPM调度API和业务API2为例进行说明,其中BPM调度API中设置有事务分割点。
步骤701,BPM引擎的进程发起流程调度。
步骤702,BPM引擎启动流程定义中预先配置的事务。在本实施例中,BPM引擎启动的事务T1配置包含有业务API1,BPM调度API和业务API2,事务T1后续也被称为外层事务。事务T1由一个线程来执行,后续也称为当前线程。
一般地,事务包含一个或多个任务,该事务由一个线程执行,线程被BPM引擎进程所驱动。一个任务在被线程执行时也称之为一个节点。
步骤703,BPM引擎确定待调度节点是否包含事务分割点,如果否,则转至步骤704,如果是,则转至步骤705。
在本实施例中,BPM调度API中预先设置有一个事务分割点。
步骤704,待调度节点不包含事务分割点时,BPM引擎在当前线程中继续执行下一节点。当前线程即执行当前被调度的流程节点的线程,即图6实施例中的第一线程。
步骤705,BPM引擎在待调度节点中发现事务分割点时,在当前线程中创建异步任务,并持久化。在本实施例中,该异步任务包含BPM调度API在事务分割点之后的待调度任务。本实施例中,持久化(Persistence)具体为缓存异步任务在数据库保存接口中。持久化的作用是把数据,如内存中的对象,存储在关系型的数据库,磁盘文件、XML数据文件中。
异步任务的设置可以具体为一段XML描述,如bpmn2extn:nextFlowExecutionMode="ASYNCHRONOUS_CONTINUE"。
步骤706,注册事务提交事件回调监听。在回调监听的注册代码中定义有异步任务的线程启动方法。事务提交事件回调监听保证异步任务的线程启动在 当前线程的事务提交之后。该事务提交事件回调监听的注册可以在步骤705之后,也可以预先在流程定义中配置。
步骤707,当前线程执行完毕,外层事务T1随着当前线程返回而提交。提交的事务T1包含业务API1,BPM调度API中事务分割点之前的已调度任务,以及业务API2。BPM调度API中事务分割点之后的待调度任务,即异步任务,则没有被执行提交。
步骤708,按照已注册的事务提交事件回调监听的回调方法,在外层事务T1提交的时候,异步任务被放入当前流程引擎进程待调度的任务队列中。该任务队列可由异步任务调度线程池中的线程来调度。该异步任务调度线程池中预先申请有若干个空闲线程等待启用。
步骤709,外层事务T1提交时,异步任务还被写入数据库。写入数据库后,该异步任务可被持久保存。步骤709与步骤708的执行可不分先后顺序。
步骤710,监测当前流程引擎进程是否异常终止,若进程异常终止,执行步骤711,若正常运行,执行步骤712。
步骤711,第二流程引擎进程从数据库获取异常终止的流程引擎进程未完成的异步任务,分配流程继续调度,完成后转至步骤713。该第二流程引擎进程会主动监控是否有其他流程引擎进程异常终止,或第二流程引擎进程收到第一流程引擎进行异常终止的通知消息。
步骤712,当前BPM引擎使用新线程(即第二线程)执行异步任务,继续调度。该新的线程是从异步任务调度线程池中获取的。若异步任务未执行完毕,执行异步任务的线程异常终止,BPM引擎从异步任务调度线程池中再取出一个空闲线程,即第三线程,执行所述异步任务。
步骤713,异步任务执行完成。数据库中的异步任务被删除。
基于上述流程调度方法,图8为本发明实施例提供的一种流程调度装置的组成结构示意图。如图8所示,该流程调度装置包括:确定单元801,创建单元803,执行单元805。
确定单元801,用于确定待调度的节点配置有事务分割点;
创建单元803,用于根据确定单元801确定的所述事务分割点,创建异步任务,所述异步任务包含在待调度的节点中所述事务分割点之后的待调度任务;
执行单元805,用于使用第一线程执行包含流程中除异步任务以外的任务的事务,并提交所述第一线程执行的事务;使用第二线程执行所述异步任务。
该执行单元805进一步用于:将创建单元创建的异步任务放入所述第一线程所属的第一流程引擎进程的待调度任务队列中。
该执行单元805还进一步用于根据注册的事务提交事件回调监听,监听到所述第一线程执行的事务成功提交时,将所述异步任务放入所述第一流程引擎进程的待调度任务队列中。
执行单元805进一步用于将所述异步任务持久化;在所述提交第一线程执行的事务后,将所述持久化的异步任务保存到数据库中,以便于当所述异步任务未执行完毕,所述第二线程所属的第一流程引擎进程异常终止时,第二流程引擎进程从所述数据库中获取所述异步任务,调度执行所述异步任务。
确定单元801是根据存储在所述数据库的流程定义确定所述事务分割点。
可见,采用本发明实施例的技术方案,流程调度装置发现在流程节点中配置有事务分割点时,创建异步任务,对于异步任务采用异步线程调度。执行配置有事务分割点的节点的线程在该线程执行完毕后,遵循事务的机制来提交,保障了数据一致性。进一步地,使用新的线程驱动事务分割点后的后续流程流转,实现任务节点之间的事务分割。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (18)

  1. 一种流程调度装置,用于执行一个流程,所述流程包括至少一个节点,所述流程调度装置包括:确定单元,创建单元和执行单元;
    所述确定单元,用于确定待调度的节点配置有事务分割点;
    所述创建单元,用于根据所述确定单元确定的所述事务分割点,创建异步任务,所述异步任务包含在所述待调度的节点中所述事务分割点之后的待调度任务;
    所述执行单元,用于使用第一线程执行包含流程中除异步任务之外的任务的事务,并提交所述第一线程执行的事务;使用第二线程执行所述异步任务。
  2. 根据权利要求1所述的流程调度装置,其特征在于,所述执行单元进一步用于:将所述异步任务放入所述第一线程所属的第一流程引擎进程的待调度任务队列中。
  3. 根据权利要求2所述的流程调度装置,其特征在于,所述执行单元用于将所述异步任务放入所述第一线程所属的第一流程引擎进程的待调度任务队列中所述执行单元包括:所述执行单元用于根据注册的事务提交事件回调监听,监听到所述第一线程执行的事务成功提交时,将所述异步任务放入所述第一流程引擎进程的待调度任务队列中。
  4. 根据权利要求2或3所述的流程调度装置,其特征在于,所述执行单元进一步用于在所述异步任务未执行完毕,所述第二线程异常终止时,从所述待调度任务队列中取出所述异步任务,使用第三线程执行所述异步任务。
  5. 根据权利要求1所述的流程调度装置,其特征在于,所述执行单元进一步用于将所述异步任务持久化;在所述第一线程执行的事务提交后,将所述持久化的异步任务保存到数据库中,以便当所述异步任务未执行完毕,所述第二线程所属的第一流程引擎进程异常终止时,第二流程引擎进程从所 述数据库中获取所述异步任务,调度执行所述异步任务。
  6. 根据权利要求1-5中任一权利要求所述的流程调度装置,其特征在于,所述事务分割点存储在数据库的流程定义中。
  7. 根据权利要求1-6中任一权利要求所述的流程调度装置,其特征在于,所述事务是声明式事务。
  8. 一种业务流程调度方法,所述流程包括至少一个节点,所述方法包括:
    确定待调度的节点配置有事务分割点;
    根据所述事务分割点,创建异步任务,所述异步任务包含所述待调度的节点中在所述事务分割点之后的待调度任务;
    使用第一线程执行包含流程中除所述异步任务之外的任务的事务,提交所述第一线程执行的事务;
    使用第二线程执行所述异步任务。
  9. 根据权利要求8所述的方法,其特征在于,在所述提交第一线程执行的事务后,进一步包括,将所述异步任务放入所述第一线程所属的第一流程引擎进程的待调度任务队列中。
  10. 根据权利要求9所述的方法,其特征在于,所述方法进一步包括:注册事务提交事件回调监听;
    所述将所述异步任务放入所述第一线程所属的第一流程引擎进程的待调度任务队列中具体包括:监听到所述第一线程执行的事务成功提交时,将所述异步任务放入所述第一流程引擎进程的待调度任务队列中。
  11. 根据权利要求9或10所述的方法,其特征在于,所述方法进一步包括:在所述异步任务未执行完毕,所述第二线程异常终止时,从所述待调度任务队列中取出所述异步任务,使用第三线程执行所述异步任务。
  12. 根据权利要求8所述的方法,其特征在于,在创建异步任务后进一步包括:将所述异步任务持久化;
    所述提交第一线程执行的事务后进一步包括:将所述持久化的异步任务保存到数据库中。
  13. 根据权利要求12所述的方法,其特征在于,所述方法进一步包括:若所述异步任务未执行完毕,所述第二线程所属的第一引擎进程异常终止,第二流程引擎进程从所述数据库中获取所述异步任务,调度执行所述异步任务。
  14. 根据权利要求8-13中任一权利要求所述的方法,其特征在于,所述事务分割点存储在数据库的流程定义中。
  15. 一种执行流程调度的计算机设备,其特征在于,所述计算机设备用于执行一个流程,所述流程包括至少一个节点,所述计算机设备包括:存储器和处理器,其中:
    所述存储器用于存储所述计算机设备的指令;
    所述处理器用于执行所述存储器中的指令,以完成以下步骤:
    确定待调度的节点配置有事务分割点;
    根据所述事务分割点,创建异步任务,所述异步任务包含所述待调度的节点中所述事务分割点之后的待调度任务;
    使用第一线程执行包含流程中除所述异步任务之外的任务的事务,提交所述第一线程执行的事务;
    使用第二线程执行所述异步任务。
  16. 根据权利要求15所述的计算机设备,其特征在于,所述处理器进一步用于根据注册的事务提交事件回调监听,监听到所述第一线程执行的事务成功提交时,将所述异步任务放入所述第一流程引擎进程的待调度任务队列中。
  17. 根据权利要求16所述的计算机设备,其特征在于,所述处理器进一步用于在所述异步任务未执行完毕,所述第二线程异常终止时,从所述待调度任务队列中取出所述异步任务,使用第三线程执行所述异步任务。
  18. 根据权利要求15所述的计算机设备,其特征在于,所述处理器进 一步用于:将所述异步任务持久化;在所述第一线程执行的事务提交后,将所述持久化的异步任务保存到数据库中;以便在所述异步任务未执行完毕,所述第二线程所属的第一流程引擎进程异常终止时,第二流程引擎进程从所述数据库中获取所述异步任务,调度执行所述异步任务。
PCT/CN2014/089703 2013-11-14 2014-10-28 一种业务流程调度的计算机设备、方法和装置 WO2015070705A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP14862971.0A EP3051414A4 (en) 2013-11-14 2014-10-28 COMPUTER DEVICE, METHOD AND DEVICE FOR PLANNING A SERVICE PROCESS
JP2016530910A JP6223569B2 (ja) 2013-11-14 2014-10-28 ビジネスフローをスケジュールするためのコンピュータ装置、方法及び装置
US15/153,204 US10453010B2 (en) 2013-11-14 2016-05-12 Computer device, method, and apparatus for scheduling business flow

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310567968.8A CN103593236B (zh) 2013-11-14 2013-11-14 一种业务流程调度的计算机设备、方法和装置
CN201310567968.8 2013-11-14

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/153,204 Continuation US10453010B2 (en) 2013-11-14 2016-05-12 Computer device, method, and apparatus for scheduling business flow

Publications (1)

Publication Number Publication Date
WO2015070705A1 true WO2015070705A1 (zh) 2015-05-21

Family

ID=50083391

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/089703 WO2015070705A1 (zh) 2013-11-14 2014-10-28 一种业务流程调度的计算机设备、方法和装置

Country Status (5)

Country Link
US (1) US10453010B2 (zh)
EP (1) EP3051414A4 (zh)
JP (1) JP6223569B2 (zh)
CN (1) CN103593236B (zh)
WO (1) WO2015070705A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109034603A (zh) * 2018-07-20 2018-12-18 深圳前海微众银行股份有限公司 业务流程执行方法、设备及计算机可读存储介质
CN109447568A (zh) * 2018-09-21 2019-03-08 山东中创软件商用中间件股份有限公司 一种流程活动异步运行方法、装置、设备及存储介质
CN112965805A (zh) * 2021-03-25 2021-06-15 兴业数字金融服务(上海)股份有限公司 基于内存映射文件的跨进程异步任务处理方法及系统
CN113051049A (zh) * 2020-07-10 2021-06-29 北京迈格威科技有限公司 任务调度系统、方法、电子设备及可读存储介质
CN113077241A (zh) * 2021-04-21 2021-07-06 北京沃东天骏信息技术有限公司 审批处理方法、装置、设备及存储介质
CN116089049A (zh) * 2023-04-07 2023-05-09 北京卡普拉科技有限公司 基于异步并行i/o请求的进程同步调度方法、装置以及设备

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593236B (zh) * 2013-11-14 2017-02-22 华为技术有限公司 一种业务流程调度的计算机设备、方法和装置
GB2533415B (en) * 2014-12-19 2022-01-19 Advanced Risc Mach Ltd Apparatus with at least one resource having thread mode and transaction mode, and method
CN107688504A (zh) * 2016-08-05 2018-02-13 中兴通讯股份有限公司 数据管理异常的补救方法及系统
CN107967549B (zh) * 2016-10-20 2022-02-01 南京途牛科技有限公司 多流程任务处理装置与方法
CN108255585B (zh) * 2016-12-28 2023-08-18 三六零科技集团有限公司 Sdk异常控制及应用程序运行方法、装置及其设备
CN107273059A (zh) * 2017-07-06 2017-10-20 郑州云海信息技术有限公司 一种存储命令的配置方法及系统
CN109446183B (zh) * 2017-08-31 2022-04-26 北京京东尚科信息技术有限公司 全局防重的方法和装置
CN107992364A (zh) * 2017-10-31 2018-05-04 用友金融信息技术股份有限公司 作业调度方法及作业调度系统
CN108388982B (zh) * 2018-02-07 2020-08-21 阿里巴巴集团控股有限公司 任务的运行方法、装置和电子设备
WO2019134323A1 (zh) * 2018-05-10 2019-07-11 深圳晶泰科技有限公司 科学计算流程管理系统
CN108762900A (zh) * 2018-05-21 2018-11-06 平安科技(深圳)有限公司 高频任务调度方法、系统、计算机设备和存储介质
CN109062675A (zh) * 2018-08-03 2018-12-21 浪潮通用软件有限公司 一种工作流系统依赖事务的监听器实现方法
CN109324925A (zh) * 2018-08-29 2019-02-12 北京仁科互动网络技术有限公司 分布式框架的事务处理方法及装置
CN109117260B (zh) * 2018-08-30 2021-01-01 百度在线网络技术(北京)有限公司 一种任务调度方法、装置、设备和介质
CN109598603B (zh) * 2018-10-26 2023-07-25 创新先进技术有限公司 一种开户任务处理方法及开户服务系统
CN111240812B (zh) * 2018-11-28 2024-03-19 中国移动通信集团广东有限公司 任务执行方法及装置
CN109783210B (zh) * 2018-12-13 2023-10-20 平安科技(深圳)有限公司 多任务处理方法、装置、计算机设备及存储介质
CN109710463A (zh) * 2018-12-27 2019-05-03 亚信科技(中国)有限公司 一种任务调度方法及装置
CN109889883A (zh) * 2019-01-23 2019-06-14 深圳市创梦天地科技有限公司 一种精彩时刻视频录制方法及装置
CN110231995B (zh) * 2019-05-20 2023-08-08 平安科技(深圳)有限公司 一种基于Actor模型的任务调度方法、装置及存储介质
SG10201906587QA (en) * 2019-07-16 2021-02-25 Mastercard International Inc Determination of data consistency in distributed asynchronous architecture
CN110968445A (zh) * 2019-11-13 2020-04-07 泰康保险集团股份有限公司 一种基于流程引擎的节点跳转方法、装置及电子设备
CN112799797B (zh) * 2019-11-14 2024-04-16 北京沃东天骏信息技术有限公司 一种任务管理的方法和装置
CN111290868B (zh) * 2020-03-02 2024-03-15 中国邮政储蓄银行股份有限公司 任务处理方法、装置和系统以及流程引擎
CN111427751B (zh) * 2020-04-15 2023-08-22 赞同科技股份有限公司 基于异步处理机制对业务进行处理的方法及系统
CN111737332A (zh) * 2020-06-24 2020-10-02 四川长虹电器股份有限公司 一种采购比价的嵌入式审计系统及方法
CN112667371A (zh) * 2020-12-07 2021-04-16 深圳市远行科技股份有限公司 异步任务的处理方法、装置、设备及存储介质
CN112527484A (zh) * 2020-12-17 2021-03-19 平安银行股份有限公司 工作流断点续跑方法、装置、计算机设备及可读存储介质
CN113177056B (zh) * 2021-06-29 2021-09-21 企查查科技有限公司 多数据库的业务数据一致性的检验方法、设备和存储介质
CN113821322A (zh) * 2021-09-10 2021-12-21 浙江数新网络有限公司 一种松耦合的分布式工作流协调系统和方法
CN116432997B (zh) * 2023-06-13 2023-10-24 安徽商信政通信息技术股份有限公司 一种对已办结流程收回重办的方法及系统
CN117474312B (zh) * 2023-12-28 2024-04-05 图快数字科技(杭州)有限公司 可视化业务流编排方法、系统、电子设备及存储介质
CN117667362B (zh) * 2024-01-31 2024-04-30 上海朋熙半导体有限公司 一种流程引擎调度方法、系统、设备及可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102238465A (zh) * 2010-04-28 2011-11-09 北京神州泰岳软件股份有限公司 一种移动数据业务端到端质量分析方法及系统
WO2012150510A1 (en) * 2011-05-03 2012-11-08 Ericsson Television Inc. Synchronization of workflows in a video file workflow system
WO2013003443A2 (en) * 2011-06-27 2013-01-03 Amazon Technologies, Inc. System and method for implementing a scalable data storage service
CN103593236A (zh) * 2013-11-14 2014-02-19 华为技术有限公司 一种业务流程调度的计算机设备、方法和装置

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010810A (ja) 1998-06-22 2000-01-14 Toshiba Corp トランザクション処理のコミット制御方法および同方法が適用される計算機システム
WO2002059773A1 (en) * 2000-12-04 2002-08-01 Thinkshare Corp. Modular distributed mobile data applications
US7089556B2 (en) * 2001-03-26 2006-08-08 International Business Machines Corporation System and method for dynamic self-determining asynchronous event-driven computation
US6816873B2 (en) 2001-05-15 2004-11-09 International Business Machines Corporation Method for managing distributed savepoints across multiple DBMS's within a distributed transaction
US6721765B2 (en) * 2002-07-02 2004-04-13 Sybase, Inc. Database system with improved methods for asynchronous logging of transactions
US8032890B2 (en) * 2003-07-22 2011-10-04 Sap Ag Resources managing in isolated plurality of applications context using data slots to access application global data and specification of resources lifetime to access resources
US8423602B2 (en) * 2004-10-13 2013-04-16 International Business Machines Corporation Web service broadcast engine
US7681133B2 (en) * 2005-10-14 2010-03-16 Oracle International Corporation Declarative task-based user interfaces
US7730286B2 (en) 2005-12-30 2010-06-01 Intel Corporation Software assisted nested hardware transactions
US7747726B2 (en) * 2006-09-20 2010-06-29 International Business Machines Corporation Method and apparatus for estimating a local performance index to measure the performance contribution of a single server in a multi-tiered environment
US20080263106A1 (en) * 2007-04-12 2008-10-23 Steven Asherman Database queuing and distributed computing
US8347292B2 (en) 2007-08-30 2013-01-01 International Business Machines Corporation Transaction aggregation to increase transaction processing throughout
US8219432B1 (en) * 2008-06-10 2012-07-10 Amazon Technologies, Inc. Automatically controlling availability of tasks for performance by human users
US8037122B2 (en) * 2008-09-19 2011-10-11 Oracle International Corporation Processing of service-oriented tasks within a grid computing environment
US8762448B2 (en) * 2009-01-30 2014-06-24 Oracle International Corporation Implementing asynchronous processes on a mobile client
CA2679494C (en) * 2009-09-17 2014-06-10 Ibm Canada Limited - Ibm Canada Limitee Consolidating related task data in process management solutions
US8806486B2 (en) * 2010-09-03 2014-08-12 Time Warner Cable Enterprises, Llc. Methods and systems for managing a virtual data center with embedded roles based access control
US8490115B2 (en) * 2011-10-20 2013-07-16 Microsoft Corporation Ambient state for asynchronous methods
US8843609B2 (en) * 2011-11-09 2014-09-23 Microsoft Corporation Managing capacity in a data center by suspending tenants
EP3249545B1 (en) * 2011-12-14 2022-02-09 Level 3 Communications, LLC Content delivery network
US9002813B2 (en) * 2011-12-22 2015-04-07 Sap Se Execution plan preparation in application server
US20140053157A1 (en) * 2012-08-16 2014-02-20 Microsoft Corporation Asynchronous execution flow
US9317322B2 (en) * 2012-10-24 2016-04-19 Google Technology Holdings LLC Simulating synchronous execution of asynchronous operations
WO2014088541A1 (en) * 2012-12-03 2014-06-12 Hewlett-Packard Development Company, L.P. Asynchronous framework for management of iaas
CN103077006B (zh) * 2012-12-27 2015-08-26 浙江工业大学 一种基于多线程的长事务并行执行方法
US9378117B2 (en) * 2014-05-30 2016-06-28 Apple Inc. Queue debugging using stored backtrace information

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102238465A (zh) * 2010-04-28 2011-11-09 北京神州泰岳软件股份有限公司 一种移动数据业务端到端质量分析方法及系统
WO2012150510A1 (en) * 2011-05-03 2012-11-08 Ericsson Television Inc. Synchronization of workflows in a video file workflow system
WO2013003443A2 (en) * 2011-06-27 2013-01-03 Amazon Technologies, Inc. System and method for implementing a scalable data storage service
CN103593236A (zh) * 2013-11-14 2014-02-19 华为技术有限公司 一种业务流程调度的计算机设备、方法和装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109034603A (zh) * 2018-07-20 2018-12-18 深圳前海微众银行股份有限公司 业务流程执行方法、设备及计算机可读存储介质
CN109447568A (zh) * 2018-09-21 2019-03-08 山东中创软件商用中间件股份有限公司 一种流程活动异步运行方法、装置、设备及存储介质
CN109447568B (zh) * 2018-09-21 2022-12-02 山东中创软件商用中间件股份有限公司 一种流程活动异步运行方法、装置、设备及存储介质
CN113051049A (zh) * 2020-07-10 2021-06-29 北京迈格威科技有限公司 任务调度系统、方法、电子设备及可读存储介质
CN112965805A (zh) * 2021-03-25 2021-06-15 兴业数字金融服务(上海)股份有限公司 基于内存映射文件的跨进程异步任务处理方法及系统
CN112965805B (zh) * 2021-03-25 2023-12-05 兴业数字金融服务(上海)股份有限公司 基于内存映射文件的跨进程异步任务处理方法及系统
CN113077241A (zh) * 2021-04-21 2021-07-06 北京沃东天骏信息技术有限公司 审批处理方法、装置、设备及存储介质
CN116089049A (zh) * 2023-04-07 2023-05-09 北京卡普拉科技有限公司 基于异步并行i/o请求的进程同步调度方法、装置以及设备
CN116089049B (zh) * 2023-04-07 2023-09-12 北京卡普拉科技有限公司 基于异步并行i/o请求的进程同步调度方法、装置以及设备

Also Published As

Publication number Publication date
JP6223569B2 (ja) 2017-11-01
US10453010B2 (en) 2019-10-22
CN103593236B (zh) 2017-02-22
JP2016541056A (ja) 2016-12-28
US20160260040A1 (en) 2016-09-08
CN103593236A (zh) 2014-02-19
EP3051414A1 (en) 2016-08-03
EP3051414A4 (en) 2016-11-16

Similar Documents

Publication Publication Date Title
WO2015070705A1 (zh) 一种业务流程调度的计算机设备、方法和装置
US8332443B2 (en) Masterless distributed batch scheduling engine
US11110601B2 (en) Scheduling robots for robotic process automation
US7665093B2 (en) Synchronization of runtime and application state via batching of workflow transactions
JP2016541056A5 (zh)
US8584004B2 (en) Asynchronous user defined functions
US8990820B2 (en) Runtime task with inherited dependencies for batch processing
US7992148B2 (en) Issuing syncpoints during execution of a batch application to minimize or eliminate periods of record unavailability due to batch related record locking
WO2020192063A1 (zh) 一种基于缓存化的销售锁定方法及系统
US8171501B2 (en) Use of modes for computer cluster management
US9753718B1 (en) Non-disruptive upgrade including rollback capabilities for a distributed file system operating within a cluster of nodes
CN112445598B (zh) 一种基于quartz的任务调度方法、装置、电子设备以及介质
CN110908793A (zh) 长时任务执行方法、装置、设备及可读存储介质
US8949835B2 (en) Yielding input/output scheduler to increase overall system throughput
JP2002324155A (ja) ワークフロー・システムおよびプログラム
US20140149483A1 (en) Data readiness using initiator region last commit selection
WO2023185137A1 (zh) 一种任务管理方法、装置、设备及存储介质
EP3063630B1 (en) Non-blocking registration in distributed transactions
US8239870B2 (en) Scheduling execution of work units with policy based extension of long-term plan
US20230049160A1 (en) Dynamically updating resource allocation tool
US10802878B2 (en) Phased start and stop of resources in a mainframe environment
EP2495657A1 (en) Efficient batch processing in a multi-tier application
CN116737331A (zh) 一种智能化任务流编排方法和平台
CN116521672A (zh) 数据处理方法、装置、设备、系统及存储介质
CN117349021A (zh) 计算任务调度方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14862971

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2014862971

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2014862971

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2016530910

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE