Spring State-Machine使用定时器时附加线程

时间:2016-11-26 10:48:06

标签: java spring timer spring-statemachine

我在java应用程序中使用spring state-machine。要在状态之间移动,我们应该使用一些事件(称为Timer事件)。似乎一个线程负责管理定时器,该定时器被设置为确定何时将发生状态之间的移动(当然,如果在我们所处的状态中没有发生任何事情,则状态机将基于定时器来决定)。在转换中添加一个计时器事件(使用Papyrus定义状态机)后,即使在main方法完成后,我也会看到剩余的活动线程。我有两个问题;首先,这个线程是什么(我的意思是,这个线程与管理计时器的线程相同),其次,我如何在工作结束时终止线程?

1 个答案:

答案 0 :(得分:0)

通过Spring TaskScheduler计划定时器,并创建基于注释的JavaConfig默认实例ConcurrentTaskScheduler。这是在StateMachineCommonConfiguration

中完成的

如果要修改它,可以通过使用其他机器配置方法覆盖名称为TaskScheduler的bean来提供自己的taskScheduler来设置它。默认ConcurrentTaskScheduler确实是基于单线程执行程序,这是你看到的。这些将在Spring Framework文档中进行更多讨论。