2017-01-25 2 views
0

Wie kann ich einem Prozess die Möglichkeit geben, aus zwei oder mehr verschiedenen Ressourcen auszuwählen?SimPy verwendet Logik, um zwischen zwei oder mehr Ressourcen zu wählen

Ich muss dies tun, da ich Wartungsaktivitäten als Prozesse simuliere, mit Ressourcen, die gemeinsam genutzte Einrichtungen darstellen, die zur Durchführung von Wartungsarbeiten zur Verfügung stehen. Einige Wartungsaktivitäten können nur einen Anlagentyp verwenden, andere Wartungsaktivitäten sind jedoch flexibler und haben die Möglichkeit, mehrere Anlagentypen zu verwenden.

Also hat ein Prozess in SimPy-Begriffen nur die Möglichkeit, einen einzigen eindeutigen Ressourcentyp auszuwählen, aber andere Prozesse können aus mehreren eindeutigen Ressourcentypen wählen.

Crude Erklärung das, was ich versuche zu erreichen:

resource_A_req = resource_A.request() 

resource_B_req = resource_B.request() 

yield resource_A_req or resource_B_req 

Würde zu lernen, wie FilterStor die Antwort auf meine Frage zu benutzen?

Antwort

1

yield resource_A_req | resource_B_req könnte für Sie arbeiten. Sie müssen dann prüfen, welche Anfrage erfolgreich war und auf der anderen Seite cancel() anrufen, um Probleme zu vermeiden (suchen Sie in den Dokumenten nach "condition events").

FilterStore könnte auch funktionieren. Ein kurzes Beispiel finden Sie unter this answer.

+0

Danke Stefan. Ich habe FilterStore mit Erfolg ausprobiert! Ich werde die erste Methode, die Sie vorschlagen, auch versuchen. – bobo

Verwandte Themen