首页
学习
活动
专区
圈层
工具
发布
综合排序丨最热优先丨最新优先
时间不限
Spring-statemachine实现订单状态机
事件,同样定义成一个枚举类,如订单创建、订单审核、支付等,代表一个动作。 而且创建出来的实例,其状态也跟当前订单的不符;spring statemachine暂时不支持每次创建时指定当前状态,所以对状态机引擎实例的持久化,就成了必须要考虑的问题。 (); StateMachine<S, E> build(BeanFactory beanFactory) throws Exception; //订单状态机构造器 String 在实际项目中一般都会有多个状态机并发执行,比如订单,同一时刻会有不止一个订单在运行,而每个订单都有自己的订单状态机流程。 "); } return stateMachine; } } 状态机的使用 外部调用状态机需要以下三步 通过创建/读取的方式获取当前订单对应的状态机引擎实例 构造
才疏学浅的木子
2023-10-17
3K0
标签:
管理订单状态,该用上状态机吗?
碰巧有个新启动的项目需要进行订单状态的管理,我着手将Spring StateMachine接入了进来,管理购物订单状态,不得不说,Spring StateMachine全家桶的文档写的是不错,并且Spring 但是,它实在是太”重“了,想要简单修改一个订单的状态,需要十分复杂的代码来实现。具体就不在这里展开了,不然我感觉可以吐槽一整天。 COLA状态机原理 这一小节,我们先讲几个COLA状态机最重要两个部分,一个是它使用的连贯接口,一个是状态机的注册和使用原理。 状态机注册和触发原理 这里简单梳理一下状态机的注册和触发原理。 )和COLA的区别,不过基于笔者在Spring Statemachine踩过的深坑,目前来看,COLA状态机的简洁设计适合用在订单管理等小型状态机的维护,如果你想要在你的项目中接入状态机,又不需要嵌套、
Rude3Knife的公众号
2022-08-31
1.8K0
标签:
高德打车通用可编排订单状态机引擎设计
; /** * 状态机需要的订单基本信息 */ private FsmOrder fsmOrder; /** * 业务可定义的上下文泛型对象 在运行时,通过一个入口来发起对状态机的调用,方法的主要参数是操作事件(event)和业务入参,如果是新创建订单请求需要携带业务(bizCode)和场景(sceneId)信息、如果是已存在订单的更新状态机引擎会根据 4 状态机引擎执行总结 状态机引擎处理流程 简易的状态机引擎的执行流程整理,主要介绍运行时的状态机执行过程。 我们的做法是: 在状态机OrderFsmEngine的sendEvent入口处,针对同一个订单维度加锁(redis分布式锁)、同一时间只允许有一个状态变更操作进行,其他请求则进行排队等待。 3 通用性的问题 其实不仅仅订单系统、甚至不仅是状态机逻辑可以用上面讲的这些思路处理,很多日常中其他一些多维度的业务都可以采取这些方案进行处理。
架构之家
2022-09-01
2.1K0
标签:
【架构实战】状态机架构:订单工单状态流转设计
一、状态机概述状态机(StateMachine)是一种非常重要的业务逻辑设计模式:核心概念:有限个状态(State)状态之间的转换(Transition)触发转换的事件(Event)每个状态对应的动作( Action)解决的问题:订单状态流转的合法性工单流程的规范管理状态转换的可追溯性并发操作的安全性二、状态机核心概念1.状态机模型展开代码语言:TXTAI代码解释┌─────────────────── ──────────────────────────────────────────────┐│订单状态机│├────────────────────────────────────────────── ───────────────────┤│││┌─────────┐│││PENDING│创建订单││└────┬────┘│││pay()││▼││┌─────────┐││┌───▶│PAID│支付成功 1.状态枚举展开代码语言:JavaAI代码解释//订单状态枚举publicenumOrderStatus{PENDING("待支付"),PAID("已支付"),SHIPPING("配送中"),COMPLETED
紫风
2026-05-22
9110
标签:
管理订单状态,该上状态机吗?轻量级状态机COLA StateMachine保姆级入门教程
碰巧有个新启动的项目需要进行订单状态的管理,我着手将Spring StateMachine接入了进来,管理购物订单状态,不得不说,Spring StateMachine全家桶的文档写的是不错,并且Spring 但是,它实在是太”重“了,想要简单修改一个订单的状态,需要十分复杂的代码来实现。具体就不在这里展开了,不然我感觉可以吐槽一整天。 COLA状态机原理 这一小节,我们先讲几个COLA状态机最重要两个部分,一个是它使用的连贯接口,一个是状态机的注册和使用原理。 状态机注册和触发原理 这里简单梳理一下状态机的注册和触发原理。 Statemachine,Squirrel statemachine等)和COLA的区别,不过基于笔者在Spring Statemachine踩过的深坑,目前来看,COLA状态机的简洁设计适合用在订单管理等小型状态机的维护
蛮三刀酱
2022-06-02
5.4K0
标签:
彻底搞懂Spring状态机原理,实现订单与物流解耦
[file] 3 使用状态机实现订单状态流转控制 状态机是状态模式的一种应用,相当于上下文角色的一个升级版。 Spring中的组件名称就叫作状态机(StateMachine)。状态机帮助开发者简化状态控制的开发过程,让状态机结构更加层次化。下面用Spring状态机模拟一个订单状态流转的过程。 :" + id + ", 订单状态:" + status; } } 3.3 创建订单状态枚举类和状态转换枚举类。 /** * 订单状态机配置 */ @Configuration @EnableStateMachine(name = "orderStateMachine") public class OrderStateMachineConfig //订单发货 Order deliver(int id); //订单收货 Order receive(int id); //获取所有订单信息 Map<Integer
Tom弹架构
2021-11-16
2.4K0
标签:
彻底搞懂Spring状态机原理,实现订单与物流解耦
3 使用状态机实现订单状态流转控制 状态机是状态模式的一种应用,相当于上下文角色的一个升级版。在工作流或游戏等各种系统中有大量使用,如各种工作流引擎,它几乎是状态机的子集和实现,封装状态的变化规则。 Spring中的组件名称就叫作状态机(StateMachine)。状态机帮助开发者简化状态控制的开发过程,让状态机结构更加层次化。下面用Spring状态机模拟一个订单状态流转的过程。 :" + id + ", 订单状态:" + status; } } 3.3 创建订单状态枚举类和状态转换枚举类。 /** * 订单状态机配置 */ @Configuration @EnableStateMachine(name = "orderStateMachine") public class OrderStateMachineConfig //订单发货 Order deliver(int id); //订单收货 Order receive(int id); //获取所有订单信息 Map<Integer
Tom弹架构
2021-12-21
1.9K0
标签:
不懂技术做校园配送系统:SaaS试跑与订单状态机验收
路线适用阶段维护责任验收重点标准SaaS订单尚未跑通、无专职技术团队按合同由服务方承担约定技术维护角色端操作、配置范围、数据导出、售后响应私有化或源码已有稳定订单,需要自有环境或二次开发自有环境部署、备份 二、校园配送与普通外卖的差异:中转分拣状态机普通外卖常见路径是商家出餐、骑手取餐、送到用户。校园配送多了校门交接、集中收餐、按楼栋分拣和校内接力,订单状态必须能表达这些中间环节。 更可靠的方法是用正常订单、退款订单、结算后售后各一笔,核对用户实付、平台抽成、商家应结、骑手收益、退款冲回和导出字段。 账务场景核对内容需要留下的记录正常订单实付、抽成、商家应结、骑手收益订单号、支付时间、金额明细退款订单退款金额、优惠冲回、商家与骑手调整退款原因、处理人、冲回结果结算后售后已结算账单如何调整、如何查询调整单 用正常订单、缺餐错餐、退款和结算后售后做小范围测试,记录失败原因。培训商家、骑手和客服,先跑一个校区或少量楼栋,再按订单和运力扩展。问:不懂技术能上线吗?
微订小程序技术团队
2026-11-03
1070
标签:
汽车租赁小程序的订单状态机与押金冻结体系实现
一、租赁订单状态机租车订单与电商订单最大的差异:履约周期长(数天到数周)、履约过程有实体交接(验车单)、资金分两段(租金 + 押金)。 状态机设计如下:待支付 → 已付定金/待取车 → 已取车(租期中) → 已还车(待验车)      → 验车通过(待结算) → 已结算(押金处理中) → 已完成异常:任意前态 → 已取消;已还车 → 验车有损 WAIT_PICKUP' AND version = #{version};状态迁移的触发点分布在用户端(下单、还车申请)、门店端(取车验车、还车验车)、后台(结算、退款)三处,所有写入口必须收敛到同一个状态机服务 月租订单建议押金按租期分阶段续冻(预授权有有效期上限),并在合同条款里明确"换车按新车重新验车、原车定损先行结算"。短租的逻辑不能直接套长租,这是租车系统里最容易踩的坑。 五、小结租车系统的三条资金与证据主线:状态机单点收敛(version 乐观锁防并发)、押金冻结解冻幂等加对账兜底、验车单结构化证据链。
用户3066938
2026-11-02
1250
标签:
县城外卖平台搭建:订单状态机、抢派单与结算验收
技术上先把订单状态机、配送范围与抢派单策略、三类账对账固定下来,再用正常单、退款单、超范围地址和提现单验收。 二、用订单状态机约束四端流转平台搭建的核心不是模块数量,而是让一笔订单从用户下单、支付,到商家接单出餐、骑手取送,再到售后和结算都能按状态推进。 可用状态机约束合法流转:待支付→商家待接单→制作中→待取餐→配送中→已送达→已完成,并保留取消、退款、拒单分支。支付回调和退款请求按事件编号做幂等,重复请求只处理一次。 、退款金额、骑手收入调整结算后退款生成售后调整记录,关联原订单原结算单号、调整金额、审批角色三、县城低密度订单:先划范围,再配抢派单县城单量分散、骑手多为兼职,纯自动派单容易空跑。 首期可用标准SaaS跑通订单与结算,订单稳定、需要自有环境和深度定制时再评估私有化或源码安装。县城低密度订单选抢单还是派单?
微订外卖系统团队
2026-11-05
300
标签:
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档