[问题] py程式之间的值如何传递

楼主: XiaoLuu5566 (洨噜)   2022-12-13 17:01:55
我有
A.py
B.py
C.py
都在同一台电脑执行
A负责计算答案 给出ans
B跟C负责抄ans
目前的做法是
A如果计算出来 就写入txt档
B跟C就是每0.1秒读取txt档
但是这样会有时间差
而且多了 写入->等待 -> 读取的工作
一直读取硬盘不晓得会不会伤硬件
有没有更专业的方法
感谢
作者: lycantrope (阿宽)   2022-12-13 17:04:00
redis
楼主: XiaoLuu5566 (洨噜)   2022-12-13 17:19:00
感谢ly大 这就是我要的功能,我之前是想用socket 但感觉有点复杂XD
作者: TuCH (谬客)   2022-12-13 17:32:00
Socket 应该还是比较快
作者: agogoman (cocorosie)   2022-12-13 17:50:00
RPC
作者: sating00 (sating00)   2022-12-13 18:16:00
Message Queue?
作者: lycantrope (阿宽)   2022-12-13 18:47:00
只是自用socket串一串可能比较简单
作者: timTan (用口头禅区分年记)   2022-12-13 21:12:00
不能只是使用模组吗?
作者: Schottky (顺风相送)   2022-12-13 23:01:00
我会选择 pipe 或 named pipe,不过只有 UNIX 能用
作者: ToastBen (吐司边)   2022-12-14 09:18:00
推8楼 main.py
作者: lycantrope (阿宽)   2022-12-14 10:28:00
也可在main.py内用subprocess跑ABC后,PIPE串起来
作者: Hsins (翔)   2022-12-14 13:26:00
都在同一台电脑运行的话,而且又是十分相关的功能的话,我于七楼说的方式使用 module 并且让资料在内存中储存与使用,让他保持高内聚且低耦合的状态
楼主: XiaoLuu5566 (洨噜)   2022-12-15 16:39:00
请问如果我程式是个别档案 也可以同时取得最新的值吗
作者: hank85293   2022-12-15 21:49:00
写成模组
作者: poototo (poototo)   2022-12-15 23:19:00
A.py用协程及task,处理你要的推播及动态import听众.py或你也能用airflow管理,每个py都是独立的task增加听众就是增加task,多个task一起处理data而已
作者: jarvuschen (jarvuschen)   2022-12-16 19:41:00
zeromq 包装好 socket 了

Links booklink

Contact Us: admin [ a t ] ucptt.com