Activiti vs Spring批次

时间:2015-09-27 09:08:45

标签: spring spring-integration spring-batch activiti

我有一个用例来实现。它基本上是一种工作流类型的用例。以下是要求

  1. 从外部数据库提取数据并将数据导入内部数据库

  2. 将此导入的数据转换为不同的格式,并将其提供给多个外部系统并在那里调用一些脚本。外部接口是SFTP,SOAP,JDBC,基于CORBA的Python。有大约14个外部系统,其中有一个接口。

  3. 接口事务以大约15个步骤执行,能够并行运行一些步骤

  4. 这些步骤应该是可配置的。即,特定流程可以执行这15个步骤中的10个,而另一个流程执行15个步骤中的15个

  5. 应该能够单独重启每个步骤或从特定步骤重新启动

  6. 有一些手动步骤,手动步骤的完成应触发下一步

  7. 数据量不是那么大。总数据大小约为40万条记录。但是这个过程一次执行大约3万条记录。开发时间较短,我们正在寻找一些易于学习和实施解决方案的轻量级产品。

    我们正在寻找基于Spring或Spring的可集成解决方案。

    我们考虑的解决方案是

    适用于工作流程: Activiti,Spring Batch

    对于接口: Spring Integration

    我的问题是

    1. 可以考虑Spring批量管理工作流类用例吗?我不认为它是Spring Batch的最佳使用案例,但由于其简单易用,因此寻找其范围。我们考虑进行接口交互,因为批处理作业中的每个步骤和tasklet内部都执行Spring Integration for external接口,据我所知,几乎没有问题

      a)动态步骤配置可以使用Java配置完成,但它有多灵活,是否推荐使用?

      b)Spring Batch

    2. 中无法进行手动步骤处理

      这有什么工作吗?这样做会有其他问题或性能影响吗?

      1. Activiti似乎是一个解决方案。对于这个用例,你能否提供一些关于Activiti与Spring和Spring集成的反馈,并且易于实现?并支持Activiti

      2. Activiti工作流程是否可以从特定任务重新启动?任务是否可以回滚?

      3. 欢迎任何建议!!

1 个答案:

答案 0 :(得分:0)

1)为了管理工作流程,Activiti将是一个很好的选择。他们创建了一个非常好的流程引擎,它应该满足您委派任务以及调用自定义逻辑的需求。而且,它完全基于Spring Framework,因此与您的逻辑集成将很容易。

2)我在第一个答案中提供了同样的内容。

3)不,您必须为此创建一个新的工作流程并且是!,可以回滚任务。