当前位置: 首页 > news >正文

注册一个私人网站wordpress创建页面

注册一个私人网站,wordpress创建页面,门户设计方案,红河网站建设activiti脚本任务脚本任务可能是Activiti代码库中“最古老的”类之一#xff0c;但是我认为它仍然未被许多人使用。 #xff08;感知到的#xff09;缺点当然是性能#xff08;解释还是编译#xff09;#xff0c;并且从IDE角度来看支持较少。 但是#xff0c;好处但是我认为它仍然未被许多人使用。 感知到的缺点当然是性能解释还是编译并且从IDE角度来看支持较少。 但是好处imo超过了这一点 脚本在流程xml本身中定义。 不再担心版本控制和类路径上的库问题。 过去我们看到的是技术水平较低的人敢于尝试脚本。 但是从来没有Java。 无论如何很少有人知道或已经意识到您可以在Activiti中的脚本中做得非常出色并可以提高工作效率。 由于此类脚本是在流程引擎中执行的因此您可以访问该引擎的所有功能。 是的...一切...这使其既非常强大又潜在危险如果您不知道自己在做什么。 让我为您讲解这样的例子。 我喜欢将其称为“自定义配置注入”概念 因为它有效地允许您在运行时添加自定义逻辑从而显着改变流程的执行。 如果您的名字更酷请告诉我。 所有代码都可以在我的Github页面上找到 https : //github.com/jbarrez/activiti-advanced-scripting 用例 现在我想做什么。 好吧我想有一个流程执行时 向执行的每个用户任务添加“任务完成事件处理程序” 此事件处理程序必须向远程URL触发自定义事件在该URL上可能有事件处理器正在执行其工作 因此基本上我们希望每当任务完成时就将自定义事件触发到某个远程URL。 一个很好的用例是商业智能报告/复杂事件处理例如使用Esper之类的东西。 第一个版本 可以在https://github.com/jbarrez/activit-advanced-scripting/blob/master/src/test/resources/org/activiti/test/my-process.bpmn20.xml中找到该功能的第一版 。 执行此过程时将发生以下情况 var config Context.getProcessEngineConfiguration(); var bpmnParser config.getBpmnParser(); 我们只需获取当前的ProcessEngineConfiguration实例。 我们将从此配置中获取BpmnParser实例因为我们想更改整个引擎的常规用户任务解析。 接下来我们构建脚本 var script ; script script importPackage(java.net);; script script importPackage(java.io);; script script var url new URL(http://localhost:8182/echo);; script script var connection url.openConnection();; script script connection.setRequestMethod(POST);; script script connection.setDoOutput(true);; script script var outputStream new BufferedOutputStream(connection.getOutputStream());; script script outputStream.write(new java.lang.String(\{eventType:task-complete}\).bytes);; script script outputStream.flush();; script script connection.connect();; script script var respCode connection.getResponseCode();; script script if (respCode ! 200) ; script script println(Response code : respCode);; script script outputStream.close();; script script connection.disconnect();; 显然这不是执行此操作的最有效方法但可以肯定地说明发生了什么。 消息eventTypetask-complete通过标准java.net和java.io类发送到localhost8182 url。 接下来是棘手的部分 var handler new ExecuteScriptOnTaskCompleteBpmnParseHandler(JavaScript); handler.setUserTaskCompleteScript(script); bpmnParser.getBpmnParserHandlers().addHandler(handler);// reset the deployment cache such that the new listener gets picked up on a new redeploy config.getProcessDefinitionCache().clear(); 在这里我们将BpmnParseHandler类添加到引擎配置中。 解析处理程序会将上面定义的脚本的执行添加到引擎发出的“任务完成事件”的每次接收中。 每次对用户任务进行解析时该解析处理程序都会启动从而有效地将我们的“将事件发送到远程服务”添加到您的Activiti环境中现在发生的每个用户任务中 有一个单元测试以了解其工作原理 https : //github.com/jbarrez/activiti-advanced-scripting/blob/master/src/test/java/org/activiti/test/ExecuteScriptInProcessTest.java 。 在测试中我们设置了一个非常简单的“回显服务”只要接收到这样的事件它就会简单地打印出来。 如果在IDE中运行它将会看到类似以下内容 但是我们可以做得更好 但是我们可以做得更好。 检查以下代码。 var handler new ExecuteScriptOnTaskCompleteBpmnParseHandler(JavaScript); handler.setUserTaskCompleteScript(http://localhost:8182/scripts/task-complete.js); handler.setExecuteScriptInJob(true); bpmnParser.getBpmnParserHandlers().addHandler(handler);// Update the configuration to use the correct job handler var jobHandler new ExecuteScriptJobHandler(); config.getJobHandlers().put(jobHandler.type,jobHandler); 该代码与上一节中的代码相同。 为每个用户任务附加一个“完成”事件的侦听器。 但是此实现 异步执行脚本 没有在流程xml中定义脚本但是它是从远程URL获取的 更新作业处理程序配置 如果您问我那太棒了 因此这意味着向远程服务实际发送消息不会影响流程实例的执行性能 。 显然从这里您可以发疯添加持久队列和所有奇特功能。 最重要的是总是从远程服务器获取脚本。 如果要更新执行的逻辑只需更改返回的脚本。 这意味着您可以在不影响实际流程的情况下影响运行时的流程执行。 在https://github.com/jbarrez/activiti-advanced-scripting/blob/master/src/test/java/org/activiti/test/ExecuteScriptWithJobTest.java有一个单元测试 如果运行此测试则会看到以下内容。 请注意我们在测试服务器上将完成脚本托管为名为“ task-complete.js”的静态文件。 在测试中您可以看到我们必须专门执行异步作业才能查看测试的输出。 警告 需要注意的是当流程引擎重新启动时将从配置文件中重新加载配置。 因此不添加从上方插入自定义逻辑的过程。 但是这可以通过使用ProcessEngineLifeCycleListener实现轻松完成该实现在引擎启动后执行特定类别的流程定义。 例如如果将所有这些进程的“ config-processes”都设为类别则可以在启动时轻松执行它们。 结论 BPMN 2.0流程中的脚本编写是一项非常强大的功能。 它使您可以在几行之内更改整个引擎的流程执行。 当然以上所有代码都可以使用Java完成。 但是以上示例仅使用标准BPMN 2.0和每次JDK安装中捆绑的javascript引擎。 谢谢阅读。 编码愉快 参考 Activiti中的高级脚本 JCG合作伙伴 Joram Barrez在小脚步博客上的自定义配置注入 。 翻译自: https://www.javacodegeeks.com/2013/07/advanced-scripting-in-activiti-custom-configuration-injection.htmlactiviti脚本任务
http://www.sadfv.cn/news/129099/

相关文章:

  • python h5网站开发网站上动画视频怎么做
  • 机票网站建设方总1340812wordpress单屏模板
  • H5建网站重庆网站制作机构
  • 医美行业网站建设广州网站建设公司排名
  • 阿里云服务器创建多个网站网页视频怎么下载下来
  • 网站优化包括对什么优化广西建设厅官方网站文件通知
  • 公司及企业如何建立自己的购物网站个人怎么做ckmov解析网站
  • 三合一网站源码asp网站开发视频教程
  • 学校资源网站建设手机手机端网站建设
  • 自己做的网站怎么发布到百度如何建设微信商城网站
  • 个人做电梯网站相亲网站怎么建设
  • 如何增加网站点击量生产企业做网站有用吗
  • 北京网站设计公司cg成都柚米科技15维拓设计在北京排名
  • 商城网站备案能通过吗哈尔滨排名seo公司
  • iis中的网站启动不了织梦网站代码
  • 网站建设的经费预算品牌网站建设保障大蝌蚪
  • 肇庆企业网站关键词优化教程网站的积分系统怎么做
  • 凤阳做网站o2o商城分销网站开发
  • flash网站建设淄博网站建设-至信网络
  • 有做公司网站的吗应遵循哪些原则
  • 专业的网站建设设计广州seo网站排名优化
  • 七冶建设集团网站 江苏东莞企石做网站
  • 深圳坪地网站建设 自助建站 五合一建站平台公司免费网站域名注册
  • 网站验收 流程wordpress小型论坛主题
  • dw个人网站建立教学wordpress图片像素
  • 太原市住房和城乡建设厅网站怎么在网站上做排名
  • 域名注册好如何做网站做网站不如做公众号
  • 兰州城建设计院网站网页设计代码如何写实训报告过程
  • 简单详细搭建网站教程图片下载网站哪个好
  • 建设团购网站怎么做网站在网上能搜到你