我有一个用例来实现。它基本上是一种工作流类型的用例。以下是要求
从外部数据库提取数据并将数据导入内部数据库
将此导入的数据转换为不同的格式,并将其提供给多个外部系统并在那里调用一些脚本。外部接口是SFTP,SOAP,JDBC,基于CORBA的Python。有大约14个外部系统,其中有一个接口。
接口事务以大约15个步骤执行,能够并行运行一些步骤
这些步骤应该是可配置的。即,特定流程可以执行这15个步骤中的10个,而另一个流程执行15个步骤中的15个
应该能够单独重启每个步骤或从特定步骤重新启动
有一些手动步骤,手动步骤的完成应触发下一步
数据量不是那么大。总数据大小约为40万条记录。但是这个过程一次执行大约3万条记录。开发时间较短,我们正在寻找一些易于学习和实施解决方案的轻量级产品。
我们正在寻找基于Spring或Spring的可集成解决方案。
我们考虑的解决方案是
适用于工作流程: Activiti,Spring Batch
对于接口: Spring Integration
我的问题是
可以考虑Spring批量管理工作流类用例吗?我不认为它是Spring Batch的最佳使用案例,但由于其简单易用,因此寻找其范围。我们考虑进行接口交互,因为批处理作业中的每个步骤和tasklet内部都执行Spring Integration for external接口,据我所知,几乎没有问题
a)动态步骤配置可以使用Java配置完成,但它有多灵活,是否推荐使用?
b)Spring Batch
这有什么工作吗?这样做会有其他问题或性能影响吗?
Activiti似乎是一个解决方案。对于这个用例,你能否提供一些关于Activiti与Spring和Spring集成的反馈,并且易于实现?并支持Activiti
Activiti工作流程是否可以从特定任务重新启动?任务是否可以回滚?
欢迎任何建议!!
答案 0 :(得分:0)
1)为了管理工作流程,Activiti将是一个很好的选择。他们创建了一个非常好的流程引擎,它应该满足您委派任务以及调用自定义逻辑的需求。而且,它完全基于Spring Framework,因此与您的逻辑集成将很容易。
2)我在第一个答案中提供了同样的内容。
3)不,您必须为此创建一个新的工作流程并且是!,可以回滚任务。