2012-12-05 113 views
4

我有3個項目一個簡單的解決方案:在Asp.Net MVC 4應用程序中初始化MassTransit的位置?

  1. Asp.Net MVC4網絡應用程序 - 主站
  2. 控制檯應用程序 - 任務運行
  3. 控制檯應用程序 - 任務運行

我希望使用MassTrasnsit作爲隊列,以便網站上的操作(如發送電子郵件)不會阻止網站,而是發佈到隊列中並由任務跑步者照顧。

我的問題是:我應該在哪裏初始化隊列,Web應用程序,其中一個任務運行程序或爲此創建單獨的控制檯應用程序?

ps。在生產服務器上運行時,控制檯應用程序將是Windows服務。

回答

4

由於創建隊列是一次性操作,您可能需要調整默認權限,因此最好使用單獨的控制檯應用程序預先創建隊列。請注意,發佈者(Web應用程序)和消費者(任務運行者)每個都需要一個隊列,並且如果它們位於不同的服務器上,則需要在每個服務器上創建隊列。

+0

鑑於工作流程非常簡單,他們爲什麼不能共享相同的隊列?該網絡應用只發布和任務跑步者只消耗,他們之間沒有重疊。 – Adabada

+0

這是MassTransit的一項要求,請參閱https://masstransit.readthedocs.org/en/latest/configuration/gotchas.html – stuartd