V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
牛客网
taomujian
V2EX  ›  Python

在 Python 文件运行的过程中怎么动态从外部加载数据?

  •  
  •   taomujian · 41 天前 · 1036 次点击
    这是一个创建于 41 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如有个 py 脚本是输出 1,现在想在不中断程序的情况下输出 1 和 2,除了开个线程一直与数据库连接或者一直监控配置文件内容有无改变之外?各位巨佬还有其他的方式吗?
    16 条回复    2020-09-25 10:36:02 +08:00
    so1n
        1
    so1n   41 天前
    如果你固定只有输出 1 还有输出 1 和 2 两种模式 可以用信号
    crclz
        2
    crclz   41 天前
    数据库(拉)或消息队列(推)是标准解决方案
    taomujian
        3
    taomujian   41 天前
    @so1n 不是固定的,会经常改变
    taomujian
        4
    taomujian   41 天前
    @crclz ok,定时向数据库拉?效率不高.......
    luckyrayyy
        5
    luckyrayyy   41 天前
    不太懂你的问题,Python 有 nio 嘛?
    taomujian
        6
    taomujian   41 天前
    @luckyrayyy 就是在不中断程序的情况下怎么修改程序中的一个变量...
    luckyrayyy
        7
    luckyrayyy   41 天前
    @taomujian 已经在运行的程序?是指动态加载、热部署之类的嘛
    neoblackcap
        8
    neoblackcap   41 天前
    不改程序几乎是不可能的,能改程序的话,无非就是通讯的问题。那么就会变成 rpc 的选择
    你可以选择 grpc, brpc 等工具建立通讯。也可以用 mysql, redis 等数据库进行通讯,也可以用 rabbitmq 之类的建立通讯。方法太多
    taomujian
        9
    taomujian   41 天前
    @luckyrayyy 不是,就是一个普通执行的程序
    SingeeKing
        10
    SingeeKing   41 天前 via iPhone
    inotify
    tmackan
        11
    tmackan   41 天前
    程序在不变的情况下,你要改变输出,只能改变输入啊
    tmackan
        12
    tmackan   41 天前
    你的使用场景描述不够清晰,如果输入是从 redis 获取的,那你可以去改变 redis 的数据
    如果你是在程序中设置的 x=1,这种改成 x=2 ??不可能
    superrichman
        13
    superrichman   41 天前 via iPhone
    你是想直接修改内存吗?
    laike9m
        14
    laike9m   41 天前
    不是。。你就不能开个 server 么
    taomujian
        15
    taomujian   34 天前
    @superrichman 不想。。。
    taomujian
        16
    taomujian   34 天前
    @laike9m 可以开,想问下有没有其他更好的方式
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4714 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 01:59 · PVG 09:59 · LAX 18:59 · JFK 21:59
    ♥ Do have faith in what you're doing.