async flow 源码
背景:系统中有各种业务,业务设计之初,需求并不复杂,业务流程简单的同步执行即可。 对业务流程,需要支持流程断点继续执行支持连续执行支持顺序定时重试 大多数同事认为流程引擎过重。但是又非常需要一种一致的异步流程执行方案。种轻量级异步执行方案。 基本思想使用连续消息速度,在需要异步执行某流程异步的时候,向延迟消息串行发送延迟消息。系统监听到延迟消息,继续执行之前的流程。 消息丢失:使用重组处理超时更久的任务。发送消息到消息之前,向数据库保存任务。执行任务之后,更新任务状态。 为了简化实现,约定每个流程对应一个bean,每个实例对应一个方法。之后,手动推进流程(调用BeanTaskExecutor#async的方法)。流程定义,实际上相当于在代码中定义了(要改流程,需要改代码)。 MQProducer,MQConsumer用来模拟逐步替代生产者和消费者。本项目只是一个演示,没有集成的spring
用户评论