3

現在、SimPy を使用してサーバー プロセスのモデル化とシミュレーションを行っていますが、このメッセージの受信元に応じて、このプロセスに異なるアクションを実行させたいと考えています。

SimPy のドキュメントには、複数のイベントを待機する方法が示されています。イベント2

ただし、現在、リソースが複数のストアから利用可能になるのを待っています。

シナリオは次のとおりです。サーバー S は、さまざまなチャネルからのメッセージを待機しています。これらの各チャネルには、メッセージが到達するまでの時間に影響するさまざまな機能があります。

問題のコードは次のとおりです。

resources = [inchannel.get() for inchannel in inchannels]
msg = yield simpy.events.AnyOf(env, resources)

ここで、inchannel は、サーバーへの入力のさまざまなチャネルをモデル化するストアの配列です。

私が抱えている問題は、最初に受信したチャネルのいずれかからのメッセージのみを受け入れるように見えることです。最初のメッセージを受信した後、そのチャネルからのメッセージを受け入れ、他のメッセージを無視します。

私も次のことを試しました:

resource = inchannel[0].get() | inchannel[1].get() | ...
msg = yield resource

この場合、inchannel[0] からのみ受信します

4

1 に答える 1