В настоящее время я использую SimPy для моделирования и моделирования процесса сервера, и я хотел бы, чтобы этот процесс выполнял другое действие в зависимости от того, откуда он получает это сообщение.Как я могу ждать процесса для нескольких ресурсов?
Документация SimPy показывает, как ждать нескольких событий: Ex: yield event1 | event2
Однако в настоящее время я пытаюсь дождаться появления ресурса из нескольких магазинов.
Сценарий выглядит следующим образом: Сервер 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]