产生请求后,如何在 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
我正在为一个制造系统建模,其中的机器可能会随机发生故障,并请求技术人员以指定的优先级进行维修。但是,当机器等待技术人员可用时,其优先级可能会发生变化。这是我可以在 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.
在我的具体示例中,我有一个运行多个进程的 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