BPM消息队列

 

1.Message:所有消息的基类。

2.MessagePool:消息池。包含多个消息队列,并对外提供方法管理消息。

3.MessageQueue:消息队列,消息都会存储在这个类中。

  bpm系统中:一共存在4中消息队列

  (1)WaitingQueue:等待处理的消息队列  

    (2)RollbackQueue:被打回的消息队列

    (3)SuspendedQueue:被挂起的消息队列

    (4)DisposingQueue:正在处理的消息队列

当添加一个消息时会往等待处理的队列中添加一条消息

当获取一个消息时:会优先获取等待处理的消息,当没有等待处理的消息,则会获取被打回的消息

当独占模式时,同一个类型的消息只能有一个在处理 其他会被挂起添加至被挂起的队列中,当消息处理完(或者打回)则会唤醒该类型的被挂起的消息

4.MessageWrapper:消息持久化对应的数据库类,启动引擎时;会获取数据库的消息数据。关闭引擎时会把当前未处理的消息保存到数据库中

消息池定义在InstanceManager类中:

主要提供的方法:

SendMessage:添加一条消息

SaveMessage:保存当前的消息到数据库中。关闭引擎时才会调用

ReallocateMessages:添加多条消息

PeekMessage:获得一条消息

MessageDisposed:处理完一条消息

RollbackMessage:打回一条消息

 

 

1.MessageDisptacher:消息处理类。

 

OnWork方法:后台有线程会每隔1s循环调用,这里是消息处理分发的入口

 BPM系统的消息类型:

 

 其中Message、InstanceMessage、ActivityMessage类为抽象类

 Message定义了MessageType属性,用于消息的第一级分发

 InstanceMessage是继承于Message类的抽象类,MessageType为ForwardInstance,该类定义了InstanceMessageType属性,用于消息的第二级分发

 ActivityMessage是继承于InstanceMessage类的抽象类,InstanceMessageType为ForwardActivity,该类定义了ActivityMessageType,用于消息的第三季分发

 

3.消息分发流程

MessageDisptacher类主要处理的是创建流程,激活流程或者取消流程的事件

SmarkWorkflow类主要处理的是与流程实例相关的操作,例如:启动流程实例、结束流程实例、取消流程实例、流程实例异常、激活流程实例等

SmartActivity类主要处理的是与流程节点相关的操作,例如:激活流程节点、结束流程节点、流程节点操作、取消流程节点、调整流程节点参与者等

 

转载于:https://www.cnblogs.com/IamMars/p/9140750.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值