2014-11-06 45 views
9

如何決定創建幾個帶有1個函數的WebJobs,並將幾個函數捆綁到一個或幾個WebJobs中? 謝謝Azure Webjobs:有幾個函數的一個作業,或者每個有一個函數的幾個作業?

+1

我認爲它主要取決於你的用例。主要的問題是,如果你想觸發相互獨立的功能,每個功能都使用自己的時間表。你有特定的場景嗎? – 2014-11-06 18:45:46

+0

說我有2個功能。每個從獨特的blob容器讀取,並寫入一個唯一的隊列。他們完全獨立於對方。我應該使用JobHost將它們放在同一個WebJob項目中嗎?或單獨的項目? – Nestor 2014-11-06 19:02:35

+1

如果你彼此獨立開發它們(可能有不同的團隊可以在其中一個團隊中工作),我會選擇兩個獨立的項目。如果它們彼此獨立,但生活在相同的功能領域(例如具有不同消息工作者的一個消息傳遞系統),則可以將它們放入一個項目中。這主要是個人偏好問題,如果他們邏輯上在同一個域。 – 2014-11-06 19:17:11

回答

4

有沒有直接的答案給你的問題。抱歉。

通常你按工作流或角色分組。例如,如果您的工作流程包含調整圖像大小的函數,則應用水印的函數和複製圖像的函數會將所有函數放在一起,因爲它們是相關的。當您修改流程時,您更有可能改變它們。

另一方面,你可能會認爲功能應該分開。除非您更改輸入/輸出,否則沒有理由修改多個函數。但是,如果您需要更改多個功能,則最終將編輯更多項目。

正如你所看到的,兩個論點都有利弊,而且沒有正確的答案。

嘗試實驗,看看哪種方法對您的解決方案更好。

PS:我可以給出的唯一指導原則是:如果函數非常小(幾行代碼),可能會更容易將它們放在同一個webjob中,因爲在維護多個程序集時會有相當多的開銷。

相關問題