2014-09-30 93 views
8

在我们的Scala/Play应用程序中,我们使用activiti。 (也试验camunda)用户可以创建工作流程(如图所示http://camunda.com/)。所有对这些外部工作流引擎的调用都包含在Scala Future(activiti和camunda API都是Java阻止API)。构建Akka工作流引擎

是否有任何库可以完全使用Akka/Actor避免沉重的工具包(如activiti/camunda)来实现工作流程?或想法如何最好地使用阿卡与activiti/camunda?

回答

2

您可以尝试使用Akka FSM dsl执行相同的旁路活动并阻止apis。请参阅http://doc.akka.io/docs/akka/snapshot/scala/fsm.html

+0

那么,Akka FSM可以很好地适用于实现“静态”工作流程,您可以在其中了解状态机。 Activiti/Camunda允许您即时创建工作流程/流程定义,并且用户可以动态更改工作流程等。是否有一种方法可以动态创建类似于activiti/camunda/jbpm的FSM? – user2066049 2014-10-01 13:20:25

2

请注意,camunda非常有powerful asynchronous continuation features,它允许您将任何长时间运行的处理委托给后台线程。这允许在客户端(可能是HTTP)线程中同步完成“多少工作”的非常灵活的配置。这可以让您在性能和容错之间取得良好的平衡。

1

我知道使用Akka(Java)构建的Catify BPMN Engine的存在。我没有任何经验,也不知道API调用是否是异步的,但我期望如此。由于它是用Akka编写的,它应该与Play!很好地结合在一起。