[問題] py程式之間的值如何傳遞

看板Python作者 (洨嚕)時間2年前 (2022/12/13 17:01), 2年前編輯推噓8(8013)
留言21則, 12人參與, 2年前最新討論串1/3 (看更多)
我有 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://www.ptt.cc/bbs/Python/M.1670922117.A.65F.html

12/13 17:04, 2年前 , 1F
redis
12/13 17:04, 1F

12/13 17:19, 2年前 , 2F
感謝ly大 這就是我要的功能,我之前是想用socket 但
12/13 17:19, 2F

12/13 17:19, 2年前 , 3F
感覺有點複雜XD
12/13 17:19, 3F

12/13 17:32, 2年前 , 4F
Socket 應該還是比較快
12/13 17:32, 4F

12/13 17:50, 2年前 , 5F
RPC
12/13 17:50, 5F

12/13 18:16, 2年前 , 6F
Message Queue?
12/13 18:16, 6F

12/13 18:47, 2年前 , 7F
只是自用socket串一串可能比較簡單
12/13 18:47, 7F

12/13 21:12, 2年前 , 8F
不能只是使用模組嗎?
12/13 21:12, 8F

12/13 23:01, 2年前 , 9F
我會選擇 pipe 或 named pipe,不過只有 UNIX 能用
12/13 23:01, 9F

12/14 09:18, 2年前 , 10F
推8樓 main.py
12/14 09:18, 10F

12/14 10:28, 2年前 , 11F
也可在main.py內用subprocess跑ABC後,PIPE串起來
12/14 10:28, 11F
目前傾向用Redis 因為廣播的就是A.py 但是聽眾我可以無限增加 保有彈性 如果之後有D.py E.py 我可以直接打開聆聽即可 不過我用redis 速度好像跟我原本透過txt的速度差不多!? ※ 編輯: XiaoLuu5566 (101.12.50.74 臺灣), 12/14/2022 10:46:08

12/14 13:26, 2年前 , 12F
都在同一台電腦運行的話,而且又是十分相關的功能的話,我
12/14 13:26, 12F

12/14 13:27, 2年前 , 13F
於七樓說的方式使用 module 並且讓資料在記憶體中儲存與使
12/14 13:27, 13F

12/14 13:27, 2年前 , 14F
用,讓他保持高內聚且低耦合的狀態
12/14 13:27, 14F

12/15 16:39, 2年前 , 15F
請問如果我程式是個別檔案 也可以同時取得最新的值
12/15 16:39, 15F

12/15 16:39, 2年前 , 16F
12/15 16:39, 16F

12/15 21:49, 2年前 , 17F
寫成模組
12/15 21:49, 17F

12/15 23:19, 2年前 , 18F
A.py用協程及task,處理你要的推播及動態import聽眾.py
12/15 23:19, 18F

12/16 00:10, 2年前 , 19F
或你也能用airflow管理,每個py都是獨立的task
12/16 00:10, 19F

12/16 00:12, 2年前 , 20F
增加聽眾就是增加task,多個task一起處理data而已
12/16 00:12, 20F

12/16 19:41, 2年前 , 21F
zeromq 包裝好 socket 了
12/16 19:41, 21F
文章代碼(AID): #1Zc3-5PV (Python)
文章代碼(AID): #1Zc3-5PV (Python)