开源流程引擎camunda

2023-03-14 11:00:22 来源:网络

开源流程引擎camunda

camunda区分不同类型待办

情况如下:

Camunda是一种轻量级的商业流程开源平台。同类型的产品有osworkflow、jbpm、activiti、flowable。其中:Jbpm4、Activiti、Flowable、camunda四个框架同宗同源,祖先都是Jbpm4。由于jbpm、activiti、flowable这几个流程引擎出现的比较早,国内人用的比较多,大家对camunda流程引擎认识的不多,实际上camunda在功能上、稳定性、性能、轻量化方面均比jbpm、activiti、flowable优秀。支持外部任务(ExternalTask)ExternalTask应该和HTTPTask做对比。HTTPTask:会有2个问题:a:请求超时怎么处理?b:测试环境与正式环境的区分?ExternalTask:会有一个外部任务节点时,当执行到该节点的时候,会发布一个任务单元。外部系统定时向Camunda获取外部任务单元,然后做一些业务逻辑或者请求HTTP、API。做完之后,再提交给Camunda,流程继续往下走。ExternalTask的好处:产生的任务只能被一个客户端获取;任务执行失败,可配制重试次数;任务可配制优先级;还可以自己实现ExternalTaskClient,可以实现更灵活的处理方式。

流程引擎之Camunda开发记录(三)

如果通过 processDefinitionId 来启动一个流程,那么代表启动流程定义的某一个版本,如果通过 processDefinitionKey 来启动流程,那么将会始终启动流程定义的最新版本

注意:PageHelper不起作用

processInstanceId 和 executionId

Execution 和 ProcessInstance 都用于获取当前流程实例的相关信息。

当流程中没有分支时,Execution等同于ProcessInstance,甚至连ID也相同;

当流程中存在分支(fork, parallel gateway),则在分支口会形成子Execution,在下一个gateway才会合并(joined)

新启动的流程,观察ACT_RU_EXECUTION表中:

PARENT_ID_字段有值为执行实例,流程实例为NULL;

ACT_ID_字段有值为执行实例,流程实例为NULL;

IS_ACTIVE_字段为0为流程实例,为1为执行实例。

免责声明:内容来自网络,若侵犯您的权利,请在一个月内通知我们,会及时删除 @轻流