产生请求后,如何在 SimPy 中更改资源请求的优先级?

How can I change the priority of a resource request in SimPy after yielding the request?

我正在为一个制造系统建模,其中的机器可能会随机发生故障,并请求技术人员以指定的优先级进行维修。但是,当机器等待技术人员可用时,其优先级可能会发生变化。这是我可以在 SimPy 中建模的东西吗?我的代码的相关部分如下:

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

我在尝试解决另一个使用请求的 cancel() 方法的问题时遇到了这个问题的答案,如 Advanced Features of the SimPy Language.

第 2 节中的详细描述

在我的具体示例中,我有一个运行多个进程的 Machine class。在 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