本期解读:

离线表数据文件计算方法: myems/myems-normalization/offlinemeter.py

代码链接: https://gitee.com/myems/myems/blob/master/myems-normalization/offlinemeter.py?sessionid=-87551802

离线表数据文件计算方法: myems/myems-normalization/offlinemeter.py

这段代码是一个用于处理离线表数据的Python脚本,主要功能是从数据库中获取新的离线表文件,解析这些文件中的数据,然后将数据存储到另一个数据库中。整个过程分为四个步骤:

获取所有状态为'new'的离线表文件:这一步骤通过连接到MyEMS历史数据库,查询状态为'new'的离线表文件,并将这些文件的信息(包括文件ID、文件名和文件对象)保存到一个列表中。

遍历每个新文件,读取单元格的值并存储数据到能源数据列表:对于列表中的每个文件,脚本会将文件对象写入本地文件,然后使用openpyxl库加载工作簿。接着,脚本会遍历工作簿中的行,读取表ID、表名称和日期时间数据,将这些数据存储到一个字典中。

将能源数据插入或更新到能源数据库中的离线表小时表:在这一步骤中,脚本首先验证表ID是否有效,然后检查数据的有效性(比如数据的范围是否在预设的低限和高限之间)。如果数据有效,脚本会连接到MyEMS能源数据库,并删除可能存在的旧数据,然后插入新的小时数据。

更新文件状态为'done'或'error':最后,脚本会更新原始文件的状态,标记为'done'表示处理成功,或者'error'表示处理过程中出现错误。

整个脚本在一个无限循环中运行,每处理完一批文件后,会暂停一段时间(例如5分钟),然后再次开始处理新的文件。脚本还包括了错误处理机制,比如在数据库连接失败或数据处理过程中遇到错误时,会记录错误信息并暂停一段时间后重试。

MyEMS开源能源管理系统核心代码解读013的更多相关文章

  1. 优秀开源代码解读之JS与iOS Native Code互调的优雅实现方案

    简介 本篇为大家介绍一个优秀的开源小项目:WebViewJavascriptBridge. 它优雅地实现了在使用UIWebView时JS与ios 的ObjC nativecode之间的互调,支持消息发 ...

  2. Hybrid----优秀开源代码解读之JS与iOS Native Code互调的优雅实现方案-备

    本篇为大家介绍一个优秀的开源小项目:WebViewJavascriptBridge. 它优雅地实现了在使用UIWebView时JS与ios 的ObjC nativecode之间的互调,支持消息发送.接 ...

  3. itest 开源测试管理项目中封装的下拉列表小组件:实现下拉列表使用者前后端0行代码

    导读: 主要从4个方面来阐述,1:背景:2:思路:3:代码实现:4:使用 一:封装背景       像easy ui 之类的纯前端组件,也有下拉列表组件,但是使用的时候,每个下拉列表,要配一个URL ...

  4. 腾讯开源的 Paxos库 PhxPaxos 代码解读---Accept阶段(一)

    腾讯开源的 Paxos库 PhxPaxos 代码解读---Accept阶段(一) 在看Accept阶段代码之前, 我们再回想一下 Basic Paxos算法; 1.  Basic Paxos 算法是为 ...

  5. Android MVP模式 谷歌官方代码解读

    Google官方MVP Sample代码解读 关于Android程序的构架, 当前(2016.10)最流行的模式即为MVP模式, Google官方提供了Sample代码来展示这种模式的用法. Repo ...

  6. msysGit管理GitHub代码

    msysGit管理GitHub代码   代码的管理,在日常开发中是很重要的环节,程序员的修炼三部曲——版本控制,单元测试,项目自动化. 本篇就简单的说说通过msysGit来管理GitHub中的代码,实 ...

  7. C/C++ 开源库及示例代码

    C/C++ 开源库及示例代码 Table of Contents 说明 1 综合性的库 2 数据结构 & 算法 2.1 容器 2.1.1 标准容器 2.1.2 Lockfree 的容器 2.1 ...

  8. Google免费的SVN服务器管理VS2010代码

    原文:Google免费的SVN服务器管理VS2010代码 前言 Google免费为我们提供了代码管理的SVN服务器.首先我这里用的Win7 64的电脑系统,用VS2010进行的代码开发.这里管理代码需 ...

  9. spring JdbcTemplate 在itest 开源测试管理项目中的浅层(5个使用场景)封装

    导读: 主要从4个方面来阐述,1:背景:2:思路:3:代码实现:4:使用 一:封装背景, 在做项目的时候,用的JPA ,有些复杂查询,比如报表用原生的JdbcTemplate ,很不方便;传参也不方便 ...

  10. weex官方demo weex-hackernews代码解读(上)

    一.介绍 weex 是阿里出品的一个类似RN的框架,可以使用前端技术来开发移动应用,实现一份代码支持H5,IOS和Android.最新版本的weex已默认将vue.js作为前端框架,而weex-hac ...

随机推荐

  1. python解析身份证获取年龄、出生日期、性别

    import re import datetime def parse_id_card(id_card): # 获取身份证号中的出生年月日和性别和年龄 birthday_pattern = re.co ...

  2. odoo14忘记后台密码解决办法

    直接在数据库里面修改: # 更新密码(假设用为 id 为 1,可通过 SELECT 进行查询) UPDATE res_users SET password_crypt='your new passwo ...

  3. JVM 使用jstat分析系统的垃圾回收情况

    jstat -gcutil 输出结果分析_助你了解jvm命令,查找JVM堆栈信息,分析性能问题.下面介绍一下jstat命令: jstat:虚拟机统计信息监视工具(JVM Statistics Moni ...

  4. obs学习之1——概览

    先占个位置,未完待续... 最近需要用OBS来开发直播软件,特整理这个分类的学习教程,以记录遇到的各种问题.

  5. 跨平台之 KMP / KMM 详解

    任何事情,急于求成都是幼稚的幻想,急于求成的结果一定是不成,对此不应该有任何怀疑. 一. KMP 和 Compose Multiplatform 摘要:减少为不同平台编写和维护相同业务逻辑代码所花费的 ...

  6. JavaWeb 中的 HTTP 基础知识

    概念:超文本传输协议,规定了浏览器和服务器之间数据传输的规则. 特点: 基于TCP协议,面向连接,更安全 基于请求-响应模型,一次请求对应一次响应 是无状态的协议,对事务处理没有记忆能力.每次请求-响 ...

  7. Web前端入门第 68 问:JavaScript 事件循环机制中的微任务与宏任务

    JS 是单线程语言.这句话对不对? 按照目前的情况来看,JS 自从支持了 Web Worker 之后,就不再是单线程语言了,但 Worker 的工作线程与主线程有区别,在 Worker 的工作线程中无 ...

  8. 【HarmonyOS5】DevEco Studio 使用指南:代码阅读与编辑功能详解

    前言 DevEco Studio 是一款功能强大的开发工具,支持 ArkTS.JavaScript.TypeScript 等多种语言,具备智能代码补全.语法高亮.实时错误检查等特性,极大提升了鸿蒙应用 ...

  9. homestead 配置多站点 报403

    )配置:Homestead 报403 一般是Homestead.yaml sites没有映射上 导致 vagrant global-status vagrant provision ef7a202 ) ...

  10. 隔离型串口服务器和西门子1500PLC和通讯案例

    一.设备搭建 起始搭建环境为无锡安泰起重量限制器.隔离型串口服务器ZLAN5143I.西门子1513 485 在工业历史长河中扮演的重要的角色,随着工业体系的加快,485 慢慢的被其他的通讯接口所替代 ...