MyEMS开源能源管理系统核心代码解读018

简介: 本期解读的 Python 脚本 *clean_analog_value.py* 用于清理 MySQL 数据库中的过期模拟量数据。脚本通过配置文件设定保留时间,删除超出指定天数的数据记录,并支持日志记录与定时任务功能。主要功能包括:连接数据库、计算过期时间、执行删除操作及提交事务。支持调试模式即时运行或以定时任务形式每 8 小时自动执行一次。依赖模块如 mysql.connector 和 schedule,确保高效管理数据生命周期。

本期解读:
模拟量数据清洗算法:myems-cleaning/clean_analog_value.py
源代码链接:https://gitee.com/myems/myems/blob/master/myems-cleaning/clean_analog_value.py?sessionid=366429121

这段代码是一个用于清理数据库中过期数据的Python脚本。它主要用于连接到一个MySQL数据库,并删除那些超过特定时间(由配置文件定义)的数据记录。下面是对这段代码的详细解释:

概括性总结

1.数据库连接: 脚本首先尝试连接到MySQL数据库。

2.数据清理: 连接成功后,它会执行一个SQL命令来删除所有超过配置文件中指定天数的数据。

3.日志记录: 整个过程中的错误和操作信息会被记录到日志中。

4.定时任务: 脚本可以配置为定时任务,每隔一定时间(例如每8小时)执行一次数据清理。

5.调试模式: 如果配置为调试模式,脚本会立即执行一次清理操作,而不是设置为定时任务。

详细解析

1.导入模块:

  • time:用于处理时间相关的功能。

  • datetime:处理日期和时间。

  • mysql.connector:连接MySQL数据库。

  • schedule:安排定时任务。

  • config:导入配置文件。

2.函数 job(logger):

  • 尝试连接到数据库。

  • 如果连接失败,记录错误并退出函数。

  • 计算过期时间(当前时间减去配置文件中定义的天数)。

  • 执行SQL命令删除过期的数据。

  • 提交事务以确保更改被保存。

  • 记录删除操作的信息。- 无论操作成功与否,最后关闭数据库连接。

3.函数 process(logger):

  • 检查是否处于调试模式。如果是,则立即执行一次清理操作。

  • 如果不是调试模式,则设置定时任务,每隔8小时执行一次清理操作。

  • 使用无限循环来持续检查并执行计划中的任务。

配置文件 config

  • 这个脚本依赖于一个外部的配置文件 config,其中包含了数据库连接信息、日志设置、是否为调试模式以及数据保留的天数等配置。

日志记录

  • 脚本使用传入的 logger 对象来记录操作信息和错误,这对于监控脚本的运行状态和调试非常重要。

定时任务

  • 使用 schedule 模块来安排定时任务,这在生产环境中非常有用,可以定期自动清理数据库中的旧数据。
相关文章
|
13天前
|
数据采集 监控 网络协议
Modbus TCP 协议电表与 MyEMS 能源管理系统的数据可视化方案
本内容介绍了基于Modbus TCP协议的西门子PAC3200电表与MyEMS开源能源管理系统的集成方案。涵盖协议特性、数据模型、系统架构、数据采集配置及可视化实现方法,展示了如何通过实时数据监控优化能耗管理,助力企业实现智能化与可持续发展目标。
44 1
|
23天前
|
传感器 数据采集 人工智能
MyEMS能源管理系统后台配置-空间管理
本文介绍MyEMS能源管理系统后台配置中的空间管理功能。MyEMS是一款开源能源管理系统,适用于建筑、工厂等场景的电、水、气等能源数据采集与分析。空间管理模块支持添加、编辑、删除空间,以及绑定计量表、设备、组合设备、数据点、传感器、租户、门店、车间、工作日历、命令和储能电站等功能。通过该模块,用户可实现对能耗设备及用能单位的全面监控与管理,助力企业挖掘节能潜力并采取优化措施。
22 0
|
11天前
|
数据可视化
MyEMS能源管理系统后台配置-能流图管理
本节介绍MyEMS能源管理系统后台配置中的能流图管理功能,涵盖能流图、节点、链接的添加、编辑、删除等操作,以及数据导入导出和预览功能,助力企业实现能耗可视化与节能优化。
15 0
|
24天前
|
容器 应用服务中间件 nginx
MyEMS开源能源管理系统核心代码解读015
这段Dockerfile用于构建一个基于Python的API应用容器,依托`python:slim`镜像实现轻量化部署。它安装了必要工具(如nano、telnet),创建文件上传目录,复制应用代码并安装依赖(支持阿里云PyPI镜像加速)。通过暴露8000端口和Gunicorn服务器配置(4个工作进程、600秒超时),确保API服务高效稳定运行。此 配置适用于Python API应用的容器化部署,提升跨环境一致性与可移植性。
40 0
|
16天前
|
数据采集 人工智能 安全
开源能源管理系统(EMS)深度解析:安全自主可控与实践应用
开源能源管理系统(EMS)以开放架构和自主可控为核心,助力企业实现高效、安全、低成本的能源管理。系统具备模块化设计、灵活定制、数据主权保护等优势,结合实时监测、智能分析与优化控制功能,广泛适用于工厂、建筑、园区等多种场景。MyEMS 作为典型代表,支持多能源品类管理及新能源设备接入,通过 AI 优化能耗策略,助力企业降本增效、实现碳减排目标。在双碳与数据安全背景下,开源 EMS 已成为企业能源转型的关键支撑。
68 4
|
2月前
|
数据采集 人工智能 Ubuntu
MyEMS开源能源管理系统开发工具
MyEMS 是一款基于 ISO 50001 标准的开源能源管理系统,支持建筑、工厂等场景的电、水、气等能源数据采集与分析,提供光伏、储能、微电网、AI 优化等功能。系统采用开源工具开发,包括 PyCharm、VS Code、Docker、Ubuntu 等,并搭配 MySQL 数据库及 DBeaver 客户端,助力企业实现低碳发展。社区版完全免费,适合开发者学习和部署。下载地址:[https://gitee.com/myems/myems](./https://gitee.com/myems/myems)。
108 32
|
23天前
|
数据采集 人工智能 BI
MyEMS能源管理系统后台配置-组合设备管理
MyEMS开源能源管理系统适用于建筑、工厂等场景的能源数据采集与分析。本文介绍系统后台配置中的组合设备管理功能,包括组合设备的添加、编辑、删除、导入、导出及克隆操作,以及绑定计量表、设备、参数和命令的相关步骤。通过这些功能,用户可灵活管理由多个设备组成的组合设备,优化能源使用与管理效率。
24 4
|
12天前
|
传感器 数据采集 人工智能
MyEMS能源管理系统后台配置-车间管理
MyEMS开源能源管理系统支持建筑、工厂等场景的电、水、气等能源数据采集与分析,提供光伏、储能、充电桩、微电网、设备控制及人工智能优化等功能,助力企业节能降耗。
19 0
|
17天前
|
数据采集 数据库连接 数据处理
MyEMS开源能源管理系统核心代码解读020
MyEMS开源能源管理系统助力企业、园区实现低碳发展,支持电、水、气等数据采集与分析,涵盖光伏、储能、充电桩等多种功能。专业团队维护,提供长期支持。代码解析:空间能耗分类汇总计算实现方法。
26 0
|
18天前
|
数据采集 人工智能 BI
MyEMS能源管理系统后台配置-邮件服务器设置
本文介绍其邮件服务器配置方法。
19 0