我讀到消息隊列優於subprocess.Popen()
。據說消息隊列是可擴展的解決方案。我想了解它是如何。python subprocess.Popen()vs消息隊列(芹菜)
我只想過subeprocess.Popen()
列出消息隊列的好處,這樣我可以說服我的上司使用消息隊列,而不是subprocess
我讀到消息隊列優於subprocess.Popen()
。據說消息隊列是可擴展的解決方案。我想了解它是如何。python subprocess.Popen()vs消息隊列(芹菜)
我只想過subeprocess.Popen()
列出消息隊列的好處,這樣我可以說服我的上司使用消息隊列,而不是subprocess
這些都是完全獨立的,不同的東西。
subprocess.Popen()
簡單產生(通過調用fork
和exec
)您傳遞給它的特定命令的新OS進程。因此,對於需要在獨立進程中執行某些操作並(可選)獲取執行結果(通過管道以某種尷尬的方式)執行的情況,這非常適用。
隊列(如芹菜或ActiveJob)爲您提供了兩兩件事:
因此,可能有很多工作人員,甚至可能在分佈式環境中。它不僅可以提供垂直可伸縮性,還可以提供水平可伸縮性(將工作人員放在不同的機器上)。另一方面,隊列更適合於異步處理(即,對於需要稍後執行並且現在不需要結果的作業)並且比簡單進程產卵更重量級。
因此,如果您有簡單的一次性工作只是在主流程之外的某個地方執行 - 請使用流程。
如果你有一堆需要異步執行的不同作業,並且你希望能夠擴展這個過程,你應該使用隊列,它們會讓生活變得更容易。
別的不是這個嗎? –
重量級排隊是什麼意思? –