Я столкнулся с ответом на этот вопрос, пытаясь решить другую проблему, в которой используется метод запроса 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