这是我参与2022首次更文挑战的第1天,活动详情查看:2022首次更文挑战
前言
状态机,在我们复杂的业务,状态的流转,业务流程触发,比如我们做一个自动化营销的平台,新建一个任务,通过审批流之后成为一个待执行状态, 通过定时任务触发到执行中,但是某些任务节点时间比较长,可能还有一个暂停状态,通过下一次条件触发,继续要么成功,要么失败。
面对这个复杂的业务,用流程引擎太重提高了系统的复杂度,但是适度的引入状态机引擎模型会让我们的业务更加解耦也减少了很多的if-else判断。
状态引擎模型
状态机的核心基本概念:
- State:状态
- Event:事件,状态由事件触发,引起变化
- Transition:流转,表示从一个状态到另一个状态
- External Transition:外部流转,两个不同状态之间的流转
- Internal Transition:内部流转,同一个状态之间的流转
- Condition:条件,表示是否允许到达某个状态
- Action:动作,到达某个状态之后,可以做什么
- StateMachine:状态机