Как я могу изменить приоритет запроса ресурса в SimPy после выдачи запроса?

Я моделирую производственную систему, в которой машины могут случайно выйти из строя, и обращаюсь к специалисту по ремонту с указанным приоритетом. Однако в то время как машина ждет, пока техник станет доступным, ее приоритет может измениться. Это то, что я могу моделировать в SimPy? Соответствующая часть моего кода ниже:

with technician.request(priority=self.get_priority()) as req:
    yield req
    yield self.env.timeout(self.time_to_repair)

0 ответов

Я столкнулся с ответом на это, пытаясь решить другую проблему, которая использует запрос cancel() метод, как подробно описано в Разделе 2 " Дополнительные возможности языка SimPy".

В моем конкретном примере у меня есть Machine класс, который запускает несколько процессов. В случае Machineзапрос сначала передается в процессе среды:

self.req = technician.request(priority=self.get_priority())
yield self.req

Другой процесс среды может позже отменить запрос и сгенерировать новый:

self.req.cancel()
self.req = technician.request(priority=self.get_priority())
yield self.req
Другие вопросы по тегам