activiti-async servicetask

disho6za  于 2021-07-12  发布在  Java
关注(0)|答案(0)|浏览(374)

我们遇到了几个在到达流程结束事件之后执行servicetasks的情况。
一个例子来自 ACT_HI_ACTINST 表如下所示(行号列“l#”手动添加):

SELECT
   EXECUTION_ID_,
   PROC_INST_ID_,
   ACT_ID_,
   ACT_TYPE_,
   START_TIME_,
   END_TIME_
FROM ACT_HI_ACTINST
WHERE PROC_INST_ID_ =
  '9841ea77-cee8-11e6-b457-005056aa6e09'
ORDER BY
   START_TIME_;

EXECUTION_ID_                           PROC_INST_ID_                           L#  ACT_ID_                         ACT_TYPE_                   START_TIME_             END_TIME_          
====================================    ====================================    === ============================    ========================    ===================     ===================
9841ea77-cee8-11e6-b457-005056aa6e09    9841ea77-cee8-11e6-b457-005056aa6e09     1. startevent1                     startEvent                  2016-12-31 00:35:06     2016-12-31 00:35:06
9841ea77-cee8-11e6-b457-005056aa6e09    9841ea77-cee8-11e6-b457-005056aa6e09     2. lockOrder                       serviceTask                 2016-12-31 00:35:06     2016-12-31 00:35:06
9841ea77-cee8-11e6-b457-005056aa6e09    9841ea77-cee8-11e6-b457-005056aa6e09     3. processingOrderStatus           serviceTask                 2016-12-31 00:35:06     2016-12-31 00:35:06
989cb4b1-cee8-11e6-b457-005056aa6e09    9841ea77-cee8-11e6-b457-005056aa6e09     4. subprocess1                     subProcess                  2016-12-31 00:35:06     2016-12-31 00:37:18
989e8977-cee8-11e6-b457-005056aa6e09    9841ea77-cee8-11e6-b457-005056aa6e09     5. startevent2                     startEvent                  2016-12-31 00:35:06     2016-12-31 00:35:06
989e8977-cee8-11e6-b457-005056aa6e09    9841ea77-cee8-11e6-b457-005056aa6e09     6. prepareContractContext          serviceTask                 2016-12-31 00:35:07     2016-12-31 00:35:07
989e8977-cee8-11e6-b457-005056aa6e09    9841ea77-cee8-11e6-b457-005056aa6e09     7. processingContractStatus        serviceTask                 2016-12-31 00:35:08     2016-12-31 00:35:09
989e8977-cee8-11e6-b457-005056aa6e09    9841ea77-cee8-11e6-b457-005056aa6e09     8. createSsoAccount                serviceTask                 2016-12-31 00:35:09     2016-12-31 00:35:09
989e8977-cee8-11e6-b457-005056aa6e09    9841ea77-cee8-11e6-b457-005056aa6e09     9. exclusivegateway1               exclusiveGateway            2016-12-31 00:35:09     2016-12-31 00:35:09
989e8977-cee8-11e6-b457-005056aa6e09    9841ea77-cee8-11e6-b457-005056aa6e09    10. exclusivegateway2               exclusiveGateway            2016-12-31 00:35:09     2016-12-31 00:35:09
989e8977-cee8-11e6-b457-005056aa6e09    9841ea77-cee8-11e6-b457-005056aa6e09    11. modifyParty                     serviceTask                 2016-12-31 00:35:10     2016-12-31 00:35:26
a44b1fb0-cee8-11e6-b457-005056aa6e09    9841ea77-cee8-11e6-b457-005056aa6e09    12. timerintermediatecatchevent1    intermediateTimer           2016-12-31 00:35:26     2016-12-31 00:37:30
989e8977-cee8-11e6-b457-005056aa6e09    9841ea77-cee8-11e6-b457-005056aa6e09    13. createNotification              serviceTask                 2016-12-31 00:37:17     2016-12-31 00:37:17
989e8977-cee8-11e6-b457-005056aa6e09    9841ea77-cee8-11e6-b457-005056aa6e09    14. closedContractStatus            serviceTask                 2016-12-31 00:37:18     2016-12-31 00:37:18
989e8977-cee8-11e6-b457-005056aa6e09    9841ea77-cee8-11e6-b457-005056aa6e09    15. endevent1                       endEvent                    2016-12-31 00:37:18     2016-12-31 00:37:18
9841ea77-cee8-11e6-b457-005056aa6e09    9841ea77-cee8-11e6-b457-005056aa6e09    16. registerClosedOrderEvent        serviceTask                 2016-12-31 00:37:19     2016-12-31 00:37:19
9841ea77-cee8-11e6-b457-005056aa6e09    9841ea77-cee8-11e6-b457-005056aa6e09    17. closedOrderStatus               serviceTask                 2016-12-31 00:37:19     2016-12-31 00:37:19
9841ea77-cee8-11e6-b457-005056aa6e09    9841ea77-cee8-11e6-b457-005056aa6e09    18. endevent2                       endEvent                    2016-12-31 00:37:19     2016-12-31 00:37:19
989e8977-cee8-11e6-b457-005056aa6e09    9841ea77-cee8-11e6-b457-005056aa6e09    19. modifyService                   serviceTask                 2016-12-31 00:37:30     2016-12-31 00:37:31
eeec32ad-cee8-11e6-b457-005056aa6e09    9841ea77-cee8-11e6-b457-005056aa6e09    20. waitingForModifyService         intermediateMessageCatch    2016-12-31 00:37:31     2016-12-31 00:37:17


现在 endEvent2 (第18行)是一个进程结束事件,在它完成之后,另一个任务被执行(这个 modifyService (第19行)任务应该在 timerintermediatecatchevent1 (第12行),在大多数情况下是)。
我们仅将activiti用作spring应用程序的处理引擎。有5个应用程序示例连接到同一个数据库。
什么会导致这种行为?我们定期观察,这对我们的业务流程非常危险。作为提示-无序的任务在不同的机器上执行。
此外,我们还调整了async executor引擎的设置—代码段的设置如下:

asyncExecutor.setDefaultAsyncJobAcquireWaitTimeInMillis(1000);
asyncExecutor.setDefaultTimerJobAcquireWaitTimeInMillis(5 * 1000);
asyncExecutor.setMaxAsyncJobsDuePerAcquisition(10);
asyncExecutor.setMaxTimerJobsPerAcquisition(10);
asyncExecutor.setAsyncJobLockTimeInMillis(10 * 60 * 1000);
asyncExecutor.setTimerLockTimeInMillis(10 * 60 * 1000);

activiti版本:5.20.0
任何帮助或暗示都将不胜感激。

进一步阅读

户外论坛上的交叉柱:https://community.alfresco.com/message/805537-servicetask-executed-after-process-end-event

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题