2017-07-15 71 views

回答

0

Activiti任务运行在主引擎运行的相同进程中。

根据流中是否存在异步活动,它们将在调用其中一个API或后台线程池时使用的线程中运行。

也就是说,没有什么能够阻止您在单独的进程中运行工作流的特定步骤(例如:长时间运行的批处理)。这可以通过多种方式来实现,但我喜欢的方式是将任务建模为“人工任务”,然后使用外部调度程序使用Activiti的API(REST或Java)挑选那些用于实际执行的任务。这种方法相当具有可扩展性,并避免了在事务管理过于复杂和/或需要很长时间执行时可能出现的与事务管理相关的一些缺陷。

0

如果Activiti引擎嵌入您的应用程序中,任务将在调用引擎API(可能是服务任务或用户任务)的线程中运行。但是我从你的问题中了解到,也许你有兴趣使用REST API调用Activiti引擎remotely,在这种情况下,显然这些任务作为容器托管Activiti引擎中的不同线程运行。