簡體   English   中英

如何使用python將作業調度到客戶端系統中?

[英]How to schedule jobs in to client systems using python?

我有4個系統,其中一個系統用作主機,其余3個系統用作從機。 我想在客戶端系統中執行一組功能並取回結果,以實現此目的,我以前使用Parallel Python,不幸的是,一旦在其中創建job_server,它就會在所有系統內部執行給定的功能。 我想單獨分配要在單個客戶端計算機上執行的特定功能,我不知道如何進行編碼。 python中是否有任何框架可以讓用戶做到這一點?

過去幾年中,在Pycon上有一種關於通過ssh管理遠程進程的工具的討論,這聽起來真的很酷,我打算檢查一下。 我已經忘記了該工具是什么,但是您可以通過查看過去幾年的Pycon對話來找到它。

Python並行處理Wiki頁面上有很多工具可以為您提供幫助。

有一個multiprocessing模塊: http : //docs.python.org/library/multiprocessing.html您可以在其中找到可以完全滿足您需要的示例(請參閱Remote Managers )。

附帶說明:我很快就發現multiprocessing模塊的局限性,現在將PyRo用作中間件。 它非常簡單且功能強大,但是需要更多的工作來建立基本框架。

我不太了解您現在擁有什么以及您正在嘗試做什么。 Pyro易於使用,非常快速並且有據可查,可讓多個python進程(在多個系統上)相互交互。 看一看。 您需要確保所有程序都在運行,以便他們在偵聽命令,但這並不難。

Pythomnic中,您可以在多個服務器上有多個進程來交換同步調用,如下所示:

result = pmnc("other_process").module.method(...) # invokes remote method

因此,您可以擁有3個不同名稱的從屬,並手動選擇呼叫目標:

pmnc("slave_1").foo.bar() # calls bar() in foo.py on slave_1

或具有相同的從屬名稱,並讓框架選擇任何可用的(當然,如果它們是可互換的)

pmnc("slave").foo.bar() # calls bar() in foo.py on any slave

簽出RPyc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM