带有时间戳的 Camunda Executionlistener 实现
Camunda Executionlistener implementation with timestamp
大家好,我是 camunda 的新手,我想测量我的流程从头到尾的执行时间,但我找不到适合侦听器的编码示例。我能想到的就是
public void notify (DelegateExecution execution) throws Exception {
// What happens when Start Event is executed
long startTime = System.currentTimeMillis();
// What happens when token has reached End Event
long stopTime = System.currentTimeMillis();
long elapsedTime = stopTime - startTime;
System.out.println(elapsedTime);
}
我在建模器中为开始和结束事件设置了 class,我希望这是正确的。
提前致谢:)
如果您对流程端到端执行时间感兴趣,您可以通过 historyService 查看 HistoricActivityInstance 并查看其开始和结束日期。
无需自定义实现。
发动机为您测量。但是你不能将带有监听器的流程实例的持续时间打印到流程中,因为流程实例仍然是运行。您可以在数据库中查看持续时间 table act_hi_procinst.
您也可以使用引擎中的 HistoryService:
public class ProcessInstanceHistory {
@Inject
HistoryService historyService;
public List<HistoricProcessInstance> historicProcessInstances() {
return historyService.createHistoricProcessInstanceQuery().list();
}
public void printDurations() {
for (HistoricProcessInstance historicProcessInstance : historicProcessInstances()) {
System.out.println("elapsedTime :" + historicProcessInstance.getDurationInMillis());
}
}
}
大家好,我是 camunda 的新手,我想测量我的流程从头到尾的执行时间,但我找不到适合侦听器的编码示例。我能想到的就是
public void notify (DelegateExecution execution) throws Exception {
// What happens when Start Event is executed
long startTime = System.currentTimeMillis();
// What happens when token has reached End Event
long stopTime = System.currentTimeMillis();
long elapsedTime = stopTime - startTime;
System.out.println(elapsedTime);
}
我在建模器中为开始和结束事件设置了 class,我希望这是正确的。
提前致谢:)
如果您对流程端到端执行时间感兴趣,您可以通过 historyService 查看 HistoricActivityInstance 并查看其开始和结束日期。 无需自定义实现。
发动机为您测量。但是你不能将带有监听器的流程实例的持续时间打印到流程中,因为流程实例仍然是运行。您可以在数据库中查看持续时间 table act_hi_procinst.
您也可以使用引擎中的 HistoryService:
public class ProcessInstanceHistory {
@Inject
HistoryService historyService;
public List<HistoricProcessInstance> historicProcessInstances() {
return historyService.createHistoricProcessInstanceQuery().list();
}
public void printDurations() {
for (HistoricProcessInstance historicProcessInstance : historicProcessInstances()) {
System.out.println("elapsedTime :" + historicProcessInstance.getDurationInMillis());
}
}
}