当前位置: 首页 > article >正文

python动态全局缓存配置

在内存中缓存配置,但提供手动或自动刷新机制。
使用文件的修改时间戳(mtime)来判断文件是否更新,只有在文件更新时重新读取

import os
import json

_cached_config = None
_cached_config_mtime = None

def read_config():
    global _cached_config, _cached_config_mtime
    config_file = os.path.expanduser('~/.magic-pdf.json')

    if not os.path.exists(config_file):
        raise FileNotFoundError(f'{config_file} not found')

    mtime = os.path.getmtime(config_file)
    if _cached_config is None or _cached_config_mtime != mtime:
        with open(config_file, 'r', encoding='utf-8') as f:
            _cached_config = json.load(f)
            _cached_config_mtime = mtime

    return _cached_config


http://www.kler.cn/a/517687.html

相关文章:

  • 2013年蓝桥杯第四届CC++大学B组真题及代码
  • 一文详解Filter类源码和应用
  • 自定义数据集使用框架的线性回归方法对其进行拟合
  • 2.1.3 第一个工程,点灯!
  • 如何优化深度学习模型来提高错别字检测准确率?
  • 零碎的知识点(九):|| 。||是什么?
  • 【论文+源码】 SeqDiffuSeq带有序列到序列生成的编码器变压器的文本扩散模型
  • OpenCV相机标定与3D重建(65)对图像点进行去畸变处理函数undistortPoints()的使用
  • 洛谷P1469 找筷子
  • Scala语言的移动应用开发
  • 使用select函数创建多线程TCP服务端
  • Skia使用Dawn后端在Windows窗口中绘图
  • 反向代理模块1
  • 第五天 Labview数据记录(5.1 INI配置文件读写)
  • python+playwright自动化测试(九):expect断言和expect_xxx()元素及事件捕获
  • 隐马尔科夫模型HMM
  • HDLC,pap,chap网络
  • C语言初阶--折半查找算法
  • Titans 架构下MAC变体的探究
  • polars as pl
  • 消息队列:春招面试的重要知识模块
  • Mono里运行C#脚本34—内部函数调用的过程
  • 【Prometheus】RabbitMQ安装部署,如何通过prometheus监控RabbitMQ
  • 【qt信号槽】
  • YOLOV11改进1-检测头篇
  • QT笔记——debug模式调试