|
DAWorkbench 0.0.1
DAWorkbench API
|
工作流任务的执行者,执者和workflow通过信号传递信息,在workflow中,执行者是在一个单独线程中 更多...
#include <DAWorkFlowExecuter.h>
类 | |
| class | PrivateData |
Public 槽 | |
| void | startExecute () |
| 开始执行节点运算 | |
| void | terminateRequest () |
| 终止请求 | |
| void | executeNode (DAAbstractNode::SharedPointer n) |
| 节点执行的槽函数 | |
信号 | |
| void | nodeExecuteFinished (DAAbstractNode::SharedPointer n, bool state) |
| 节点执行完成返回的结果 | |
| void | finished (bool success) |
| 完成执行发射此信号 | |
Public 成员函数 | |
| DAWorkFlowExecuter (QObject *p=nullptr) | |
| void | setStartNode (DAAbstractNode::SharedPointer n) |
| 设置开始节点 | |
| void | setWorkFlow (DAWorkFlow *wf) |
| 设置工作流 | |
| QList< DAAbstractNode::SharedPointer > | getGlobalNodes () const |
| 获取全局节点 | |
| QList< DAAbstractNode::SharedPointer > | getIsolatedNodesNodes () const |
| 获取孤立节点 | |
| bool | isTerminateRequest () const |
| 判断是否在请求结束 | |
工作流任务的执行者,执者和workflow通过信号传递信息,在workflow中,执行者是在一个单独线程中
|
slot |
节点执行的槽函数
执行完成后会发射
关于节点执行等待问题:
如果有如下链路,需要进行等待
[1]—>[2.1]—>[2.2]—>[4] | ↑ └-->[3.1]---------—┘
上面这个链路1节点分出2.1和3.1
2.1经过2.2才到4,3.1直接到4,因此,4的执行必须等待2.2的执行
复杂一点的情况如:
┌———>[4.1]—┐
| ↓
[1]—>[2.1]=┙->[2.2]—>[5] | ↑ ↑ └-->[3.1]===┙-----—┘
也就是说,入度不全,不能继续传递
| n |
| QList< DAAbstractNode::SharedPointer > DA::DAWorkFlowExecuter::getGlobalNodes | ( | ) | const |
获取全局节点
| QList< DAAbstractNode::SharedPointer > DA::DAWorkFlowExecuter::getIsolatedNodesNodes | ( | ) | const |
获取孤立节点
| bool DA::DAWorkFlowExecuter::isTerminateRequest | ( | ) | const |
判断是否在请求结束
|
signal |
节点执行完成返回的结果
| n |
| void DA::DAWorkFlowExecuter::setStartNode | ( | DAAbstractNode::SharedPointer | n | ) |
设置开始节点
| n |
| void DA::DAWorkFlowExecuter::setWorkFlow | ( | DAWorkFlow * | wf | ) |
设置工作流
| wf |
|
slot |
开始执行节点运算
此函数有DAWorkFlow的exec函数触发
| n |
首先执行注册的prepareStartexec回调
最后执行注册的prepareEndexec回调