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
может сработать тоже. Посмотрите этот ответ для краткого примера.