深入浅出jBPM_06章.pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
深入浅出jBPM_06章

146 第 6 章 异 步 第 6 章 异 步 步对于工作流引擎而言是一项很重要的功能。通过使用异步,可以将流程中一些复杂 异 耗时的操作交给另外一个线程去完成,从而确保当前用户流程的操作速度。纵观目前 一些商业工作流产品,无不对异步提供了很好的支持。jBPM 虽然只是一款开源的工作流引擎, 但同样也提供了对异步的支持。在jBPM 当中,异步有两种实现方式:第一种方式是通过jBPM 的 任务调度方式实现(参见第5章),这也是jBPM 默认的异步实现方式;第二种方式是采用JMS方 式实现,在流程运行中当遇到需要异步处理的动作时,jBPM 流程引擎向JMS服务消息队列发送 消息,配置在容器中的Message-Driver Bean在收到消息队列里的消息后,由该Message-Driver Bean 来执行异步动作。本章要介绍的异步是第一种,即采用任务调度实现异步处理,关于JMS方式处 理异步动作的内容将在第9章详细讨论。 6.1 概念 异步和同步是一对相对的概念。所谓异步,就是在主应用程序线程以外的线程中执行的操作; 同步则洽洽相反。关于同步和异步的概念,很多人都是通过下面这个通俗场景来理解的:同步就 是你叫我去吃饭,我听到了就和你去吃饭,如果没有听到,你就不停地叫,直到我告诉你听到了, 才一起去吃饭;异步就是你叫我,然后自己去吃饭,我得到消息后可能立即走,也可能等到下班 才去吃饭。 默认jBPM 中的所有Action (动作)的执行都是采用同步方式,当客户端对流程进行操作时, 客户端会等待流程路由的完成,直到流程到达下一个等待节点,所有的流程动作执行完成后客户 端才会得到反馈。对于这种默认设置,如果我的Action里执行的动作需要20秒的时间才能处理完, 那么也就是说客户端至少需要20秒的时间才能得到服务端的反馈结果。如果采用了异步,那么就 可以将类似这种执行需要耗费大量时间的操作放到后台,由异步线程去完成,这样客户端就不用 花时间等待后台流程运行完成了。 当然,异步也会带来一些问题。比如事务(Transaction ),同步的情况下利用JTA很容易 实现客户端与工作流引擎事务操作保持一致,但如果是异步情况就没有办法实现事务的一致 性了。 6.3 举例 147 6.2 原理 在第5章介绍jBPM 的任务调度时讲过,任务调度服务就是一个在服务器端运行的线程,它的 处理目标是存储于jbpm_job 表里的job 。jBPM 的异步利用了任务调度的特性,将需要异步处理的 任务也作为job 交给任务调度服务去处理。 1 在前面介绍jBPM 流程节点的时候我们知道,在Node节点、Task Node节点、Decision节点、 Fork节点、Join节点和Mail Node节点等的属性窗口里都有一个名为Advanced 的标签页。其中有一 个名为Asynchronous 的属性,这个属性的默认值为false,如果勾选它,就表示这个节点的相关动 2 作(Action )的执行将采用异步方式进行。 先来看一下jBPM 默认的同步处理的情况。图6-1是一个简单的jBPM 流程图。 3 4 5 6 7 图6-1

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档