python动态全局缓存配置

在内存中缓存配置,但提供手动或自动刷新机制。

使用文件的修改时间戳(mtime)来判断文件是否更新,只有在文件更新时重新读取

python 复制代码
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
相关推荐
YMWM_5 分钟前
python3中类的__call__()方法介绍
开发语言·python
柠檬071112 分钟前
cuda 安装记录
python
Monkey的自我迭代14 分钟前
实战项目数据桥agent复盘
数据库·python·oracle
空空潍20 分钟前
Python核心基础语法
开发语言·python
历程里程碑28 分钟前
子串-----和为 K 的子数组
java·数据结构·c++·python·算法·leetcode·tornado
BYSJMG40 分钟前
Python毕业设计选题推荐:基于大数据的美食数据分析与可视化系统实战
大数据·vue.js·后端·python·数据分析·课程设计·美食
草原上唱山歌43 分钟前
C++如何调用Python代码
开发语言·c++·python
小鸡吃米…1 小时前
机器学习 - 贝叶斯定理
人工智能·python·机器学习
紫竹苑主1 小时前
VS Cose + PlatformIO +ESP32-S3 + ESPIDF开发环境安装卡壳持续等待问题解决
vscode·python·嵌入式硬件·物联网·硬件架构