4.0版的jxTMS升级了多个重大能力,本系列文章将逐一进行讲解。
docker版本的使用,请查看:docker版jxTMS使用指南
本系列文章包括:
python服务之jxLocalStateMachine模块
4.0版的docker版本jxTMS展示了一个通过MQTT接收前端站点各种设备发送的监测数据,然后解析、处理、保存、通过rest查询、管理配置的示例。主要升级了:
1、数据表的周期性分表
由于数据采集的频次可能会比较高,单表压力很大,所以需要实现周期性的自动分表。
4.0版的jxTMS通过在data文件中定义数据类时,增加一个rename指示,然后做一次热机刷新即可实现周期性的自动分表。
4.0版的jxTMS支持按天、星期、月、年为周期进行分表。
2、自动生成代码
任何一个管理系统都存在着大量的管理对象,而这些管理对象一般都需要最基本的增删改查【jxTMS不支持删除,而代之以禁用】功能,其中最麻烦的就是需要制作大量的界面,非常容易出错。
所以4.0版的jxTMS实现了自动生成代码功能,通过简单描述管理对象的基本界面,然后就可以自动生成:
-
该管理对象的新增、查看、修改、带条件的分页查询界面
-
新增、查询的入口
-
相应的查询sql
-
新增、查看、修改、查询的python函数
然后再根据业务需要对这些代码文件做针对性的修改即可。
同时考虑到如果一个模块需要同时管理多个对象,如果把这些代码都合并到一个文件中,管理这些代码也会比较吃力,所以4.0版的jxTMS支持了多文件,即各个管理对象的定制代码就放在自己的web、op、sql、py文件中,热机刷新时jxTMS会自动合并这些文件。
3、python服务动态升级
jxTMS具备热机刷新的动态升级能力,4.0版jxTMS的python服务也同样具备了动态升级能力,所以jxTMS就拥有了完整的动态升级能力。
4、一个完整的、通过MQTT采集设备数据的python服务示例
本次升级,还为python服务提供了丰富的基本能力包:
-
权限管理,资源打包为资源组,用户映射到角色,然后向资源(组)按角色【或用户】授予操作许可。用户以jwt方式登录与对资源提出操作请求,验证后执行相应的操作
-
rest接口,结合了上述的权限管理来提供rest访问,并同样支持动态扩充
-
mqtt、ORM形式的数据库操作、有限状态自动机等
-
支持热机备份,python服务失效后,最小可做到4秒接管
-
集合上述功能,提供了一个设备数据采集的demo:通过mqtt采集前端设备发送的文本数据,解析后将设备状态、设备数据等保存到数据库中,并通过web和python服务提供设备数据查询、后处理等服务
-
通过jxTMS平台对python服务进行全面管理
另,jxTMS的docker镜像启动、jxTMS服务的启动等也进行了更新,指南中的相关内容也进行了更新:
https://zhuanlan.zhihu.com/p/615270438
参考资料:
下面的系列文章讲述了如何用jxTMS开发一个实用的业务功能:
下面的系列文章讲述了jxTMS的一些基本开发能力: