本文讲解4.0版jxTMS中python服务的jxGo模块,整个系列的文章请查看:docker版jxTMS使用指南:4.0版升级内容
docker版本的使用,请参考:docker版jxTMS使用指南
示例python服务是jxTMS体系的一个子集。该体系为:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rxZJSdJA-1684889811069)(http://115.29.52.95:10018/images/智能控制体系.png)]
需要说明的是,该体系初始是基于智能硬件项目【参考用jxTMS开发智能转运箱】发展而来,目前已经发展为jxTMS扩展,即jxTMS体系是以jxTMS主系统来提供业务管理、业务过程推动、平台管理,而以python服务作为扩展来实现整个业务系统的全能力支撑,以catalogService为纽带将扩展挂载到系统中供jxTMS进行管控。
即jxTMS包括了两个层次:
-
jxTMS主系统提供管理功能
-
jxTMS扩展用于实现特定的操作
python服务扩展是在go编写的基础服务之上的进一步发展,主要是以python丰富的生态来最大化的实现全能力支持。
jxGo模块属于扩展部分的基础模块,以类函数的形式为其它部件提供支持。
引用:
from jx.jxGo import jxGo
jxGo是的类函数主要有:
getSysConfig(cls,configName,Default=None)
读取conf/system.json系统配置文件中system配置项目中的配置值
参数:
configName:配置项名
Default:默认值
返回值:
配置值
示例:
restPort = jxGo.getSysConfig('restPort',10028)
如果配置了restPort的值就返回配置值,否则返回10028
serverInfo(cls)
获取系统当前的运行信息
参数:
无
返回值:
CpuLoad:cpu负载
DiskLoad:cpu负载
DiskTotal:硬盘大小,单位G
DiskUsed:硬盘已使用大小
MemLoad:cpu负载
MemTotal:内存大小,单位M
MemUsed:内存已使用大小
Uptime:启动以来的秒数
示例:
si = jxGo.serverInfo()
{'BootTime': 1683720897, 'CpuLoad': 0.66, 'DiskLoad': 23.952435921110858, 'DiskTotal': 467, 'DiskUsed': 106, 'MemLoad': 17.148301079622705, 'MemTotal': 15667, 'MemUsed': 2686, 'Uptime': 1416}
log(cls,level,msg)
写系统日志【logs/rolling.log】
参数:
level:日志级别,info、warn、error
msg:记录内容
返回值:
无
说明:
查看python服务的日志,执行:
cd /home/tms/python/logs
tail -f rolling.log
OK(cls)
python服务有时需要提供响应消息。OK函数返回ok的响应
参数:
无
返回值:
{'jT':'info','msg':'ok'}
说明:
jT是jxTMS的目录服务中自行约定的消息识别属性
infoMsg(cls,msg)
生成一个info级别的自定义的响应消息
参数:
msg:消息文本
返回值:
{'jT':'info','msg':msg}
errMsg(cls,msg)
生成一个err级别的自定义的响应消息
参数:
msg:消息文本
返回值:
{'jT':'err','msg':msg}
需要注意的是,jxGo是用go编写的jxTMS服务基本包,然后打包为so库提供给python引用的。所以只要引用了jxGo,就会加载该so库,完成很多模块的初始化并连接rabbitMQ服务。如果此时主服务已经启动,再在同一目录下执行引用了jxGo的py文件,由于使用了和主服务相同的配置,有可能导致冲突使得主服务中断!
所以,务必不要在生产机上随意执行加载了jxGo的py文件!!
参考资料:
下面的系列文章讲述了如何用jxTMS开发一个实用的业务功能:
下面的系列文章讲述了jxTMS的一些基本开发能力: