Python获取Jira问题Sprint ID及Java执行结果整合


目标

开发python预测脚本并且部署到Java应用容器中。

基础环境要求

系统:MacOS/Linux

基础软件: JDK8,Conda(Python 3.6+),MySQL (5.6)

发型包: app_runtime

可以通过如下方式下载:

wget http://download.mlsql.tech/app-runtime-1.0.0/app-runtime_2.11-1.0.0.jar

该发型包大概200M,需要点耐心。下载完后,配置下环境变量:

export APP_RUNTIME_JAR=/app-runtime_2.11-1.0.0.jar

工具

pip install Cython
pip install pyarrow==0.10.0
pip install ray==0.8.0
pip install watchdog requests click uuid sfcli pyjava

元数据库 basic_app_runtime:

CREATE TABLE `dict_store` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(256) DEFAULT NULL,
`value` text,
`dict_type` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8;

它只有这一张表。basic_app_runtime 这个库名也可以随便取。

启动应用容器

创建容器目录:

sfcli create --name example_project --empty

修改config/application.yml 大致如下:

development:
datasources:
mysql:
host: 127.0.0.1
port: 3306
database: basic_app_runtime
username: xxxx
password: xxxx
initialSize: 8
disable: false
removeAbandoned: true
testWhileIdle: true
removeAbandonedTimeout: 30
maxWait: 100
filters: stat,log4j
mongodb:
disable: true
redis:
disable: true

主要是配置前面的元数据库。

现在可以启动容器了:

sfcli runtime

我们希望我们有用户权限体系,从而能够创建和管理python脚本,当然还有执行python脚本。所以这次我们会安装四个插件,他们分别是:app_runtime_with_db 操作元数据库的插件

user-system 用户权限体系插件

ar_python 执行python脚本的插件

ar_runtime_web_console 为所有插件提供统一web界面的插件。

这些插件都需要数据库表支持,我们可以将他们放在不同的数据库里也可以放在相同的。在这里,我们放在同一的数据库里,名字叫app_runtime_full, 他们对应的表在:

app_runtime_with_db https://github.com/allwefantasy/app_runtime_with_db/blob/master/db.sql
user-system https://github.com/allwefantasy/user-system/blob/master/db.sql
ar_python https://github.com/allwefantasy/ar_python/blob/master/db.sql
ar_runtime_web_console https://github.com/allwefantasy/ar_runtime_web_console/blob/master/db.sql

我们先安装插件:

sfcli plugin --add app_runtime_with_db:1.0.0 --token 9d0d1030-6ed7-4dcb-9aa8-37abf02f2191
sfcli plugin --add user-system:1.0.0 --token 9d0d1030-6ed7-4dcb-9aa8-37abf02f2191
sfcli plugin --add ar_python:1.0.0 --token 9d0d1030-6ed7-4dcb-9aa8-37abf02f2191
sfcli plugin --add ar_runtime_web_console:1.0.0 --token 9d0d1030-6ed7-4dcb-9aa8-37abf02f2191

其中token为config/application.yml下的admin_token对应的值。

因为已经安装了ar_runtime_web_console,所以我们后续可以直接使用web界面来操作了。进入地址:

http://127.0.0.1:9007/ar_runtime_web_console/

可以看到一个比较简单的页面:

我们第一步是要给插件添加数据库配置。


dbConfig可以不用管。点击 `COMMIT`后可以看到如下配置选项的生成:

按相同的方式添加ar_python, ar_runtime_web_console。结果如下:

另外很多插件会通过http请求使用user-system插件,所以我们需要添加下user-system的地址:


现在各个插件都可以正常工作了。他们都需要有用户才行。我们需要注册然后登陆一个账号来完成后续的操作。默认注册功能是被关闭的。我们开启一下:

现在可以去注册了。

我注册了一个账号jack.现在去登录:

返回生成的token表示登录成功。现在我们可以去写一段python脚本了:

系统会提示我没有权限进行这项操作。所以我需要去给jack账号授权一下(如果填写了admin_token,则会绕过一切权限):

这里,我授权给jack用户访问registerPyAction的权限。

现在我成功的创建了一段叫echo的python代码。当我去执行的时候,也会失败,我们需要将echo的执行权限赋给jack账号:

现在可以执行代码了:

通常,python脚本需要接受一些额外参数,我们可以通过`ADD PARAMS`添加一些动态参数:


这样,我们就可以正常的使用ar_python的功能了。我们发现前面的操作需要我们对接口比较熟悉。对接口熟悉的人也可以通过创建向导,然后方便其他用户使用。比如我假设我希望把第一步初始化数据库和添加proxy的两个API做成一个向导给用户使用。

创建向导:

创建向导子选项,添加数据库:

创建添加代理子选项

现在,返回首页,通过【Go to nav page】 进入向导页,选择一个你想要的想到:

现在,你只要按照步骤填写表单即可:



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空