欢迎来到天天文库
浏览记录
ID:44403938
大小:26.00 KB
页数:3页
时间:2019-10-21
《高级图形执行jbpm开发指南》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、高级图形执行jBPM开发指南从事活动行为的实现,是他们想使用的执行结构。假设多个任务必须在执行进行之而完成。活动行为可以为这个产牛一系列子执行。或者可以选择,任务组件可以支持任务组,分配给单独的执行。在那种情况,任务组件成为同步任务的响应,因此把这个责任移动到执行树形结构范围之外。7.7.异常处理器在所有分配到流程的代码中,像Activity,EventListeners和Condition,nJ'能分配给异常处理器。这可以想成是把这些实现的方法实现包含在try-catch块中。但是为了构建更多可复用的构建块,为了委派类和界常处理逻辑,异常处理器可以添加到核心流程
2、模型中。一个异常处理器可以分配给任何流程元素。当一个异常发生在一个委派类中,一个匹配的异常处理器就会被找到。如果找到了一个这样的界常处理器,它会有一个处理这个界常的机会。如果一个界常处理器处理完成,没有出现问题,然后这个异常会被认为是处理了,就会在委派代码调用后继续。比如,一个转移有三个动作,第二个动作抛出一个异常,这个异常被界常处理器处理,然后编写白动活动,异常处理器提醒是很容易的。默认是任意执行。没有方法需要在执行中调用。所以如果一个白动活动抛出一个异常,被异常处理器处理,这个执行会在这个执行后继续执行。这对于控制流向活动就会有-个更大的困难。它们可能需耍包含
3、try-finally块来调用执行中对应的方法,在异常处理器获得一个机会来处理异常。比如,如果活动是等待状态,然后发生了一个升常,这里就会有一个风险,线程会跳出execution.waitForSignal()的调用,导致执行在这个活动以后继续执行。TODO:exceptionhandler.isRethrowMaskedTODO:transactionalexceptionhandlersTODO:wenevercatcherrors7.7.流程修改TODO:流程修改7.8.锁定和流程状态一个执行的状态不是激活就是锁定。一个激活的执行不是执行就是等待外部触发器。
4、如果一个执行不是STATE_ACTIVE,那么它就是被锁定。一个锁定的执行是只读的,不能接受任何外部触发器。当一个新执行被创建时,它是STATE_ACTIVE.为了把状态修改成锁定状态,使用lock(String)o一些STATE,*常量被提供了,它们演示了最常用的锁定状态。但是在图片中的……状态展示了任何字符串都可以作为状态提供给lock方法。执行的状态如果一个执彳亍被锁定,修改执行的方法会抛出一个PvmException,信息会引用真实的锁定状态。触发事件,更新变量,更新优先级,添加注释不会当做是修改执行。子节点的创建和删除也不会检测,这意味着那些方法可以被外
5、部API客户和活动行为调用,即使执行在锁定状态。确保比较getState()和STATE.*常量时使用。equals,不要使用二二,因为如果执行从持久存储加载。会创建一个新字符串,而不是使用常量。一个执行实现会被锁定:*当它结束*当它暂停*在异步延续过程中更多的,锁定可以被活动实现使用,让执行在等待状态下只读,然后为这个执行传递的外部实例就像这样:*一个人员任务*一个服务调用*一个等待状态当探测器检测一个文件的出现时就结束在这些情况,策略是外部实例应该获得执行的完全控制,因为它想要控制什么应该允许,什么不应该。为了获得那种控制,他们锁定了执行,所以所有内部交互必须
6、通过外部实例传递。一个创建外部实例的主要原因是,它们可以在执行已经执行过还存在。比如,在服务调用的情况,定时器可以导致执行获得超时转移。当响应在超时后到达,服务调用实例应该确认它没有signal这个执行。所以服务调用可以看做一个活动实例(活动实例)是对活动每个执行的唯一实例。外部实例它们白己负责管理执行锁定。如果定时器和客户端应用结果是选择外部实例,而不是直接选择执行,然后在理论上是不必要的。它是从事活动行为实现,无论它希望执行锁定述是解锁。谁要是游戏人生,他就一事无成;谁不能主宰白己,永远是一个奴隶。
此文档下载收益归作者所有