作者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/m.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