我想问一下批处理。我需要处理100 000个由以下步骤组成的业务流程:生成PDF(异步),发送邮件并将文档上载到归档系统。我正在考虑在spring引导(异步服务任务)中使用activiti,因为我可以控制失败的作业,并且可以轻松地重试它们等。我不知道使用activiti或camunda还是其他工具是不错的主意。批处理业务流程
批处理业务流程
回答
你可以使用一个多实例调用活动。通过多实例,您可以指定如何执行呼叫活动(在您的情况下为100_000次)。呼叫活动将调用您的流程模型来存档pdf。对于每个调用(多实例的实例),您可以定义一个应该被调用到被调用进程的变量,因此可以在主进程中拥有一个PDF文件名列表,并为每个子进程转发一个名称。 主要过程看起来是这样的:
确保你做多实例异步之前使用异步执行,否则将无法与100_000情况下工作。
的多实例调用活动看起来是这样的:
<bpmn:callActivity id="Task_0fl5th9" name="archiving pdf" calledElement="archivePdf">
<bpmn:incoming>SequenceFlow_04xoo79</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_0036ezx</bpmn:outgoing>
<bpmn:multiInstanceLoopCharacteristics camunda:asyncBefore="true" camunda:collection="pdfNames" camunda:elementVariable="pdfName">
<bpmn:loopCardinality xsi:type="bpmn:tFormalExpression">100_000</bpmn:loopCardinality>
</bpmn:multiInstanceLoopCharacteristics>
</bpmn:callActivity>
似乎multiInstanceLoopCharacteristics确实为每个项目提交。有没有办法设置提交计数?当我使用camunda.bpm.job-execution.core-pool-size = 5时,我注意到日志中存在死锁异常: '### SQL:select * from ACT_RU_EXECUTION where PROC_INST_ID_ =? ###原因:com.microsoft.sqlserver.jdbc.SQLServerException:事务(进程ID 62)在另一个进程的锁资源上死锁,并被选为死锁受害者。重新运行该事务。' – Bully
我在ACT_RU_JOB表 上看到相同的死锁'### SQL:select * from ACT_RU_JOB J where J.EXECUTION_ID_ =?' – Bully
- 1. 批处理作业事务处理
- 2. 如何处理替代业务流程
- 3. spring批处理流作业Vs spring组合任务
- 4. MVVM批处理作业流程文件是否属于ViewModel?
- 5. MapReduce或批处理作业?
- 6. 在远程服务器上调用Spring批处理作业
- 7. Drupal批处理表单 - 流程值?
- 8. AWS Lambda/Aws批处理工作流程
- 9. 在Spring批处理中查询批处理作业元数据
- 10. 批处理mysql脚本/计划运行批处理作业
- 11. Java 8流批处理
- 12. BizTalk业务流程中并行形状的异步处理
- 13. 在MVC模式下处理简单的业务流程?
- 14. 在Spring批处理作业中配置多个流程时出错
- 15. Spring批处理管理Web应用程序作业清单
- 16. 业务流程模型与流程图
- 17. 如何删除业务流程流程
- 18. 大型机批处理作业触发
- 19. 来自Spring批处理作业参数
- 20. 如何关闭批处理作业
- 21. 从IIS启动批处理作业
- 22. 从批处理Java作业打印
- 23. Spring批处理作业无限循环
- 24. Spring-xd批处理作业锁定
- 25. 春季批处理 - 作业执行ID?
- 26. 与批处理作业删除文件
- 27. JDBC使用弹簧批处理作业
- 28. Dynamics AX的批处理作业
- 29. Spring批处理 - 动态作业选择
- 30. 在PowerShell中创建批处理作业
随着camunda,您可以使用发动机内部批处理自定义的工作,检出camunda-BPM定制批次扩展。 –
另一种可能性是http://www.flowable.org/。作业处理在Activiti5(Flowable5)<-> Flowable6之间发生了变化。例如Deadletter队列和++ 而且当你检查团队http://www.flowable.org/team.html - >核心activiti团队搬到Flowable。 –