[問題] 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