轻量级Java有限状态机 Squirrel State Machine 0.2.5 发布

hekailiang
 hekailiang
发布于 2014年01月20日
收藏 31

Squirrel State Macne 0.2.4 发布了,改进记录:

- 支持Action异步调用
- 支持声明式事件的异步派发
- 支持定时状态 (Timed State)
增加有限状态机内部执行状态诊断信息
- 增加@OnBeforeActionExecuted/@OnAfterActionExecuted事件监听注解
- Bug修复

https://github.com/hekailiang/squirrel

Squirrel State Machine 是基于Java的有限状态机的实现。主要实现功能包括:

- 提供友好的API来构建状态机
- 提供基于注释声明状态机
- 事件驱动的状态转移
- 状态机自诊断
- 状态机导出SCXML,DOT文件

ATM状态机

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:轻量级Java有限状态机 Squirrel State Machine 0.2.5 发布
加载中

最新评论(12

hekailiang
hekailiang

引用来自“newbiegao”的评论

请问现在的状态机是线程安全的了吗?
是的.
newbiegao
newbiegao
请问现在的状态机是线程安全的了吗?
newbiegao
newbiegao
谢谢作者的回复,回头再测试一下
hekailiang
hekailiang

引用来自“newbiegao”的评论

状态机执行上速度可以,但构造状态机实例的时候需要200-400多毫秒 ,由于状态机不是线程安全的,在多用户情况下(每个用户的操作需要一个流程实例)需要创建与用户数量对等的流程实例数量,应此我们对状态机这创建200 -400ms开销相当大,在一个高并发系统中不适用,如果状态机是线程安全的就好了,可惜目前不支持,希望未来的版本能支持。

StateMachineBuilder是采用lazy的方式build状态机定义,所以在首次创建状态机实例的时候会build状态机的定义,确实是会慢一点,但是之后再创建新的状态机实例时就很快了,这类似于JPA的EntityManagerFactory。复用StateMachineBuilder应该就能解决你所说的问题。另外,在新的版本中状态机已经是线程安全的了。
newbiegao
newbiegao
状态机执行上速度可以,但构造状态机实例的时候需要200-400多毫秒 ,由于状态机不是线程安全的,在多用户情况下(每个用户的操作需要一个流程实例)需要创建与用户数量对等的流程实例数量,应此我们对状态机这创建200 -400ms开销相当大,在一个高并发系统中不适用,如果状态机是线程安全的就好了,可惜目前不支持,希望未来的版本能支持。
赵占涛
赵占涛

引用来自“YeaWind”的评论

Java有限状态机是什么机器?

同问
hekailiang
hekailiang

引用来自“newbiegao”的评论

之前试用过,发现状态机初始化很慢,在多用户多状态机场景下不是很好用。

谢谢你的反馈。状态机本身的初始化应该不会慢的,不知道能否提供测试用例。状态机本身与用户并无关系,能否具体说明下是哪里不好用。
newbiegao
newbiegao
之前试用过,发现状态机初始化很慢,在多用户多状态机场景下不是很好用。
hekailiang
hekailiang
是的,以后会补上的。
飞天遇见猪
飞天遇见猪
国人写的 不是应该弄个中文文档嘛?
返回顶部
顶部