作者XiaoLuu5566 (洨噜)
看板Python
标题[问题] py程式之间的值如何传递
时间Tue Dec 13 17:01:55 2022
我有
A.py
B.py
C.py
都在同一台电脑执行
A负责计算答案 给出ans
B跟C负责抄ans
目前的做法是
A如果计算出来 就写入txt档
B跟C就是每0.1秒读取txt档
但是这样会有时间差
而且多了 写入->等待 -> 读取的工作
一直读取硬碟不晓得会不会伤硬体
有没有更专业的方法
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 49.216.23.166 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1670922117.A.65F.html
1F:→ lycantrope: redis12/13 17:04
2F:→ XiaoLuu5566: 感谢ly大 这就是我要的功能,我之前是想用socket 但12/13 17:19
3F:→ XiaoLuu5566: 感觉有点复杂XD12/13 17:19
4F:推 TuCH: Socket 应该还是比较快12/13 17:32
5F:→ agogoman: RPC12/13 17:50
6F:→ sating00: Message Queue?12/13 18:16
7F:→ lycantrope: 只是自用socket串一串可能比较简单12/13 18:47
8F:→ timTan: 不能只是使用模组吗?12/13 21:12
9F:推 Schottky: 我会选择 pipe 或 named pipe,不过只有 UNIX 能用12/13 23:01
10F:推 ToastBen: 推8楼 main.py12/14 09:18
11F:推 lycantrope: 也可在main.py内用subprocess跑ABC後,PIPE串起来12/14 10:28
目前倾向用Redis
因为广播的就是A.py
但是听众我可以无限增加
保有弹性
如果之後有D.py E.py
我可以直接打开聆听即可
不过我用redis 速度好像跟我原本透过txt的速度差不多!?
※ 编辑: XiaoLuu5566 (101.12.50.74 台湾), 12/14/2022 10:46:08
12F:→ Hsins: 都在同一台电脑运行的话,而且又是十分相关的功能的话,我 12/14 13:26
13F:→ Hsins: 於七楼说的方式使用 module 并且让资料在记忆体中储存与使 12/14 13:27
14F:→ Hsins: 用,让他保持高内聚且低耦合的状态 12/14 13:27
15F:→ XiaoLuu5566: 请问如果我程式是个别档案 也可以同时取得最新的值 12/15 16:39
16F:→ XiaoLuu5566: 吗 12/15 16:39
17F:推 hank85293: 写成模组 12/15 21:49
18F:推 poototo: A.py用协程及task,处理你要的推播及动态import听众.py 12/15 23:19
19F:推 poototo: 或你也能用airflow管理,每个py都是独立的task 12/16 00:10
20F:→ poototo: 增加听众就是增加task,多个task一起处理data而已 12/16 00:12
21F:推 jarvuschen: zeromq 包装好 socket 了 12/16 19:41