activiti6中的脚本任务可以通过scriptFormat指定脚本格式来执行对应的脚本,scriptFormat属性的值必须是与JSR-223(Java平台的脚本编写)兼容的名称。

需要执行python脚本需要选择的脚本格式为jython

需要引入的jar:

<dependency><groupId>org.activiti</groupId><artifactId>activiti-spring-boot-starter-basic</artifactId><version>6.0.0</version>
</dependency>
<dependency><groupId>org.python</groupId><artifactId>jython</artifactId><version>2.7.2</version>
</dependency>

1.创建一个简单的流程如下:

脚本任务中的属性配置为:

整个流程的ID设置为python_test_1

<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_152bf5q" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.0.0"><bpmn:process id="python_test_1" isExecutable="true"><bpmn:startEvent id="StartEvent_1" name="开始"><bpmn:outgoing>SequenceFlow_0bdle5t</bpmn:outgoing></bpmn:startEvent><bpmn:sequenceFlow id="SequenceFlow_0bdle5t" sourceRef="StartEvent_1" targetRef="Task_0nvspvr" /><bpmn:endEvent id="EndEvent_1rospzp" name="结束"><bpmn:incoming>SequenceFlow_0h63l8b</bpmn:incoming></bpmn:endEvent><bpmn:sequenceFlow id="SequenceFlow_0h63l8b" sourceRef="Task_0nvspvr" targetRef="EndEvent_1rospzp" /><bpmn:scriptTask id="Task_0nvspvr" scriptFormat="jython"><bpmn:incoming>SequenceFlow_0bdle5t</bpmn:incoming><bpmn:outgoing>SequenceFlow_0h63l8b</bpmn:outgoing><bpmn:script>print("hello 2022!!!!")</bpmn:script></bpmn:scriptTask></bpmn:process><bpmndi:BPMNDiagram id="BPMNDiagram_1"><bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="python_test_1"><bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"><dc:Bounds x="179" y="103" width="36" height="36" /><bpmndi:BPMNLabel><dc:Bounds x="186" y="146" width="22" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNEdge id="SequenceFlow_0bdle5t_di" bpmnElement="SequenceFlow_0bdle5t"><di:waypoint x="215" y="121" /><di:waypoint x="265" y="121" /></bpmndi:BPMNEdge><bpmndi:BPMNShape id="EndEvent_1rospzp_di" bpmnElement="EndEvent_1rospzp"><dc:Bounds x="415" y="103" width="36" height="36" /><bpmndi:BPMNLabel><dc:Bounds x="422" y="146" width="22" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNEdge id="SequenceFlow_0h63l8b_di" bpmnElement="SequenceFlow_0h63l8b"><di:waypoint x="365" y="121" /><di:waypoint x="415" y="121" /></bpmndi:BPMNEdge><bpmndi:BPMNShape id="ScriptTask_0k3ur0y_di" bpmnElement="Task_0nvspvr"><dc:Bounds x="265" y="81" width="100" height="80" /></bpmndi:BPMNShape></bpmndi:BPMNPlane></bpmndi:BPMNDiagram>
</bpmn:definitions>

2.在Controller中的调用方法如下:

   @GetMapping("/api/bpmn/python_test")public void mysql_test(){Deployment deployment = repositoryService.createDeployment().name("Python测试任务").addClasspathResource("processes/pythonTest_01.bpmn").deploy();log.error("部署 ID is:{} name is:{}", deployment.getId(), deployment.getName());Properties props = new Properties();props.put("python.home", "path to the Lib folder");props.put("python.console.encoding", "UTF-8");props.put("python.security.respectJavaAccessibility", "false");props.put("python.import.site", "false");Properties preprops = System.getProperties();PythonInterpreter.initialize(preprops, props, new String[0]);ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("python_test_1");log.error("流程实例ID is:{}, \n流程定义ID is:{}, ", processInstance.getId(), processInstance.getProcessDefinitionId());}

3.运行结果:

activiti6执行Python脚本相关推荐

  1. mac上使用crontab周期性执行python脚本

    这个月买了本书<Linux系统命令及Shell脚本实践指南>, 看到了一个周期性执行任务cron.顿时产生一个想法: mac上有这种机制么? 加上自己也在15年下半年也学了点python脚 ...

  2. 使用sae定时执行Python脚本

    使用sae定时执行Python脚本 使用sae定时执行Python脚本 12,May,2014 | 57 Views 毕设压力略大,必须是桂林游的锅.去之前放松了几天,回来又休闲了几天,加上桂林的一周 ...

  3. python运维脚本部署jdk_Jenkins自动执行Python脚本,并输出测试报告

    这段时间,在家时间自由(除了睡觉8小时,其他时间都在工作和学习),有大把的时间实操练习一些硬技能: 今天,更新一篇利用Jenkins这套框架,调用Python自动化脚本,并输出测试报告的手把手实操文章 ...

  4. python 任务计划_windows 10 设定计划任务自动执行 python 脚本的方法

    我用 python 写了一些脚本,有一些是爬虫脚本,比如爬取知乎特定话题的热门问题,有一些是定期的统计分析脚本,输出统计结果到文档中.之前我都是手动执行这些脚本,现在我希望如何这些脚本能自动定时执行. ...

  5. python能在excel运行吗-使用PyXLL在Excel中执行Python脚本

    PyXLL是一款能够使得在Excel中能够执行Python脚本的插件,不过它是使用Excel扩展库(XLL)的方式,这跟平常加载一些常用的宏方式是一样的. 使用pyXLL,首先你必须安装Python, ...

  6. contOS crontab 定时执行python脚本

    contOS crontab 定时执行python脚本 安装crontab yum install crontabs crontab语法 常用系统命令 ntsysv //查看系统开机启动项 chkco ...

  7. python脚本调度程序_Windows 任务调度程序定时执行Python脚本

    Windows 任务调度程序(Task Scheduler)可以定时执行程序,本文分享使用Task Scheduler定时执行Python脚本的两种方法. 在控制面版->管理员工具中打开 Tas ...

  8. python为运行为何出现乱码_解决执行python脚本出现乱码的问题

    解决执行python脚本出现乱码的问题 发布时间:2020-08-11 09:19:22 来源:亿速云 阅读:111 作者:小新 小编给大家分享一下解决执行python脚本出现乱码的问题,相信大部分人 ...

  9. flask执行python脚本_如何在Flask中运行python脚本

    我有一个Flask脚本,可以创建网站并动态打印一些数据.-打印的数据应来自另一个python脚本. 我目前面临的问题是,如果我将执行python脚本的行放在执行Flask应用程序的行之前,它将运行Py ...

最新文章

  1. BackboneFast
  2. 2014 WAP校园招聘笔试题
  3. java axmlprinter_安卓xml配置文件解析工具-AXMLPrinter2.jar(androidmanifest.xml 反编译)下载官方最新版-西西软件下载...
  4. FirstLetterUtil
  5. Java ObjectOutputStream reset()方法与示例
  6. 分级加权评分算法 java_荐书|智能风控:原理、算法与工程实践
  7. 机器学习与计算机视觉(opencl编程)
  8. 你真的会用 VS Code 的 Ctrl、Shift和Alt吗?高效易用的快捷键:多光标、跳转引用等轻松搞定
  9. NameNode和SecondaryNameNode的工作机制
  10. mysql 序列号_mysql 序列号生成器(转)
  11. 记nuc8的开箱以及安装hackintosh
  12. 计算机学生如何创新,试论如何在计算机教育中培养学生的创新能力
  13. mac mini mysql 安装_苹果宣布新款Mac mini机型 高端版安装服务器系统
  14. html美食网站源码
  15. GB 18030介绍及其与相关标准的比较-GBK与GB18030-2000
  16. 机器学习(三)线性回归、广义线性回归、非线性回归
  17. 最新界面很漂亮的在线工具箱,包含站长工具箱等等功能
  18. 现代化富文本编辑器 Quill Editor
  19. 烟草物流信息综合管理平台研究与应用——以H市卷烟厂烟草物流配送中心为例
  20. 微商代理系统APP软件

热门文章

  1. c语言图书管理系统 - 链接数据库版(MySQL)
  2. java restlet 教程_java – 如何使用RESTlet在RESTful Web服务中强制执行“会话”?
  3. vuepress2.0使用教程(8)-扩展MD功能(Section扩展及自定义语法)
  4. 于仕琪C/C++ 学习笔记
  5. Unity调用UniWebView打开H5界面脚本
  6. 车流量统计 matlab,基于视频的车流量统计——matlab代码
  7. sql server2008处理笛卡儿积的逻辑——记一次解决疑惑
  8. FL Studio2023终身免费升级适合电音舞曲DJ使用
  9. JavaScript通过API调取信息,AJAX请求,局部刷新
  10. ubuntu16.04+caffe+GTX1060+DIGITS安装方法