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

Другие вопросы по тегам