docker版jxTMS使用指南:python服务之设备策略

这篇具有很好参考价值的文章主要介绍了docker版jxTMS使用指南:python服务之设备策略。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文讲解4.0版的jxTMS中python服务的设备策略,整个系列的文章请查看:docker版jxTMS使用指南:4.0版升级内容

docker版本的使用,请参考:docker版jxTMS使用指南

jxTMS实现的接口机对设备的数据采集与处理采取的是框架组装模式。

即jxTMS定义了一整套的设备数据采集、处理、查询/访问的工作机制,然后只需要针对新类型的设备、不同用户、不同的操作需求、不同的服务等级进行定制,然后一一注册到该框架中即可。

加上jxTMS的python服务还支持动态升级,所以jxTMS实现了动态的、简单的、灵活的升级与伸缩能力。

接口机python服务提供的可以动态升级的能力有:

1、新类型设备如何解析、处理数据

定义该类型设备的数据处理策略,然后用policy.registerPolicy注册即可。

类似app/policy_vrs20.py,然后动态加载【loadNewPy】这样的py文件即动态增加了对新类型设备的数据解析能力。

注:app.policy_vrs20模块在app/device_vrs20.py中被引用

2、新类型设备如何保存数据

定义该类型设备的数据类,然后用Device.register注册即可。

类似app/data_vrs20.py,然后动态加载【loadNewPy】这样的py文件即动态增加了对新类型设备的数据保存能力。

注:app.data_vrs20模块在main.py中被引用

3、新类型设备的特殊处理与生成

继承device类,然后针对性处理,然后用device.registerDevType注册即可。

类似app/device_vrs20.py,然后动态加载【loadNewPy】这样的py文件即动态增加了对新类型设备的处理能力。

注:app.device_vrs20模块在main.py中被引用

4、新的操作

定义对应的操作函数,然后用auth.registerOP注册即可。

类似app/op_getDevData.py,然后动态加载【loadNewPy】这样的py文件即动态增加了对新的操作。

注1:app.op_getDevData模块在main.py中被引用

注2:新增的操作必须在相应的资源(组)的权限管理中追加操作才能被执行,通过【操作权限查询】,按【资源(组)】进行条件查询,然后对该权限执行【修改操作】。如果没有相应资源(组)的权限配置,则新增相应的资源配置。权限配置完毕,要对影响到的资源(组)做权限下发,新的操作才会被相应的用户有权操作

5、给操作后得到的数据增加SLA【服务水平,如不同的精度、不同的粒度、不同的范围等等】

完成操作后,根据数据类型和用户的不同,可以提供针对性的SLA。只需要针对不同的SLA分别定义对应的数据处理函数,然后将这些数据处理函数以数据类型、角色用dataPolicy.register注册跟即可。

类似app/dualResult_vrs20.py,然后动态加载【loadNewPy】这样的py文件即动态增加了对新数据类型、新的角色提供的操作后过滤能力。

注1:app.dualResult_vrs20模块在main.py中被引用

注2:未注册的数据类型直接返回原数据;注册了数据类型时,按用户名、用户角色、默认这三个顺序依次搜索,找到就交其处理,未找到则返回原数据

SLA只是数据策略的一个应用,在jxTMS中,数据策略称为数据的后处理。即设备所接收到的数据有三次处理机会:

  • 设备接收到的数据会交给设备所配置的数据处理策略进行解析、处理、保存等

  • 当用户发起操作并通过授权检验后,jxTMS会调用相应的操作函数来执行该操作。虽然我们示例的操作就是读取设备的实时数据,但也不排除根据需要对数据进行加工处理

  • 当用户操作完毕,取得操作后的数据时,jxTMS会检查是否有合适的数据转换策略,如果有则调用该策略对获取到的数据进行转换后再递交用户,否则直接将数据递交用户

注:数据策略使用dataPolicy.register进行注册:

引用:

from jx.dataPolicy import dataPolicy

dataPolicy.register函数说明:

register(cls, type, dual, target=‘default’)

注册一个数据转换策略

参数:
	type:数据类型
	dual:处理函数
	target:期望匹配的目标,应该是角色名,默认是default,即该类型数据的默认转换策略
返回值:
	无
说明:
	1、同一数据类型,数据转换策略的搜索顺序是:用户名、用户的各角色、default,先找到哪个就用哪个;没找到就返回原数据
	2、dual函数的签名是:
		dual(data)
			data:当前数据
6、mqtt接收到不同的主题如何处理【参考后继的mqqt讲解】

定义对应的处理函数,然后用mqttClient.registerDual注册即可。

main.py中注册了default的topic,即处理所有未指明的topic消息

7、增加新的rest接口来执行操作【参考后继的web讲解】

有两种方案:

a web服务尚未启动前

定义继承自UserRouter的相应的uri处理类,然后用web.register在web服务启动前注册即可。

类似app/web.py,但其中所增加的uri【/api/getDeviceData】只能在web服务启动前添加,无法被动态加载。

b web服务已经启动

增加一个新的操作【需授权】,然后通过/api/access访问即可。即,本方法或说/api/access是将权限、操作、SLA进行了深度融合后的产物,只需要增加新的操作并授权,即可通过/api/access访问。

注:/api/access实质上只是将user.access暴露给了web访问,给user.access提供了web访问通道

8、增加新的告警方式

定义继承warnPolicy的告警策略,然后重写dual对象函数后,然后创建一个该策略的实例用warnPolicy.register注册即可。

类似app/warnPolicy_dingding.py,然后动态加载【loadNewPy】这样的py文件即动态增加了新的告警方式。

注:app.warnPolicy_dingding模块在main.py中被引用

warnPolicy.register的函数签名:

register(cls, type, wp, purpose=None)
type:使用告警策略对象的类型
wp:告警策略实例
purpose:如果一种类型需要更详细的告警策略区分,则用purpose来辅助区分
结语

本文一共讲述了8种动态扩展,加上上篇文章中的注册新型站点,所以jxTMS的python服务一共提供了9种动态扩展能力:

docker版jxTMS使用指南:python服务之设备策略

笔者在main.py中做了说明:本示例一共用到了8种动态注册,本文讲述的这8种动态扩展都使用到了【7b的web服务启动后添加access动作未示例】,只有site.register没被用到。

参考资料:

jxTMS设计思想

jxTMS编程手册

下面的系列文章讲述了如何用jxTMS开发一个实用的业务功能:

如何用jxTMS开发一个功能

下面的系列文章讲述了jxTMS的一些基本开发能力:

jxTMS的HelloWorld文章来源地址https://www.toymoban.com/news/detail-471970.html

到了这里,关于docker版jxTMS使用指南:python服务之设备策略的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker版jxTMS使用指南:状态机的数据事件

    本文讲解4.4版jxTMS中新的有限状态自动机,整个系列的文章请查看:docker版jxTMS使用指南:4.4版升级内容 docker版本的使用,请查看:docker版jxTMS使用指南 4.0版jxTMS的说明,请查看:4.0版升级内容 4.2版jxTMS的说明,请查看:4.2版升级内容 前文我们介绍了【本地数据总线】,4.4版

    2024年02月16日
    浏览(35)
  • docker版jxTMS使用指南:数据源之API

    本文讲解4.2版jxTMS的数据源的API,整个系列的文章请查看:docker版jxTMS使用指南:4.2版升级内容 docker版本的使用,请参考docker版jxTMS使用指南 4.0版jxTMS的说明,请查看:4.0版升级内容 使用数据源前需导入: 其构造函数为: informDual其实就是一种通知机制,是接收端向数据源的

    2024年02月12日
    浏览(39)
  • docker版jxTMS使用指南:通过REST接口访问站点数据

    本文讲解4.4版jxTMS中如何通过web访问站点数据,整个系列的文章请查看 :[docker版jxTMS使用指南:docker版jxTMS使用指南:4.4版升级内容 docker版本的使用,请查看:docker版jxTMS使用指南 4.0版jxTMS的说明,请查看:4.0版升级内容 4.2版jxTMS的说明,请查看:4.2版升级内容 我们以新增的

    2024年02月15日
    浏览(51)
  • docker版jxTMS使用指南:数据源之表达式

    本文讲解4.2版jxTMS的数据产生与校验表达式,整个系列的文章请查看:docker版jxTMS使用指南:4.2版升级内容 docker版本的使用,请参考docker版jxTMS使用指南 4.0版jxTMS的说明,请查看:4.0版升级内容 数据产生式 数据产生式是一个字符串的表达式,jxTMS在需要时将运行该表达式以获

    2024年02月12日
    浏览(39)
  • 如何使用Docker部署Nacos服务?Nacos Docker 快速部署指南: 一站式部署与配置教程

    🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页 ——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》 🐾 学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础

    2024年02月09日
    浏览(85)
  • 使用Python搭建代理服务器- 爬虫代理服务器详细指南

    搭建一个Python爬虫代理服务器可以让你更方便地管理和使用代理IP。下面是一个详细的教程来帮助你搭建一个简单的Python爬虫代理服务器: 1. 首先,确保你已经安装了Python。你可以在官方网站(https://www.python.org/)下载并安装最新版本的Python。 2. 安装所需的Python库。打开终端或

    2024年02月15日
    浏览(44)
  • 【Shell 命令集合 系统设置 】Linux 配置鼠标设备的相关设置 mouseconfig命令 使用指南

    Shell 命令专栏:Linux Shell 命令全解析 mouseconfig命令是Linux系统中的一个命令,它用于配置鼠标设备的相关设置。通过mouseconfig命令,用户可以更改鼠标的灵敏度、按钮映射、滚轮速度等参数,从而满足个人的使用习惯和需求。 鼠标是计算机中常用的输入设备之一,mouseconfig命令

    2024年02月03日
    浏览(54)
  • Docker 网络使用指南

    目录 前言 Docker网络类型 Docker 网络概念 使用 Docker 网络 运行容器并连接到网络 检查网络 清理网络资源 Docker Compose网络 Docker 是一种容器化平台,它允许你将应用程序和它们的依赖项打包成一个称为容器的独立单元。Docker 提供了一种轻量级、可移植和自包含的方式来部署应用

    2024年02月05日
    浏览(42)
  • docker全流程使用指南

    注:本部分内容参照自Ubuntu - Docker — 从入门到实践 卸载旧版本 使用脚本自动安装 在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Ubuntu 系统上可以使用这套脚本安装,另外可以通过 --mirror 选项使用国内源进行安装: 执行这个命令后,脚本就

    2024年02月15日
    浏览(32)
  • docker使用指南&疑难杂症

    1 构建包不成功留下一堆废镜像和容器 none 如何清理? https://blog.csdn.net/catoop/article/details/91908719 2 docker0 ip没了怎么办? 容器stop(不确定是否必须,关上保险),重启docker,再start容器 问题:Dockerfile构建镜像,旧文件一点没动,结果执行到apt各种包会报找不到。returned a non-

    2024年01月19日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包