2017-01-25 30 views
0

中選擇一種怎樣給一個過程的兩個或多個不同的資源選擇的選項?SimPy中使用邏輯將兩個或更多的資源

我需要這樣做,因爲我模仿的維護活動過程,以表示可用來進行維修共用設施資源。一些維護活動只能使用一種類型的設施,但其他維護活動更加靈活,並且可以選擇使用多種類型的設施。因此,在一個SimPy方面

一個過程只選擇一個獨特類型的資源,但其他進程的選項,可以從多個獨特的資源類型進行選擇。

的我想要實現原油解釋:

resource_A_req = resource_A.request() 

resource_B_req = resource_B.request() 

yield resource_A_req or resource_B_req 

將學習如何使用FilterStore是回答我的問題?

回答

1

yield resource_A_req | resource_B_req可能爲你工作。然後您需要檢查哪個請求是成功的,並在另一個請求上調用cancel()以避免出現問題(在文檔中搜索「條件事件」)。

FilterStore可能會奏效了。一個簡短的例子見this answer

+0

謝謝Stefan。我已經嘗試過成功的FilterStore!我會嘗試你建議的第一種方法。 – bobo