python - 产生请求后,如何在 SimPy 中更改资源请求的优先级?
问题描述
我正在建模一个制造系统,其中机器可能会随机出现故障并要求技术人员以指定的优先级进行维修。但是,当机器等待技术人员可用时,它的优先级可能会改变。这是我可以在 SimPy 中建模的东西吗?我的代码的相关部分如下:
with technician.request(priority=self.get_priority()) as req:
yield req
yield self.env.timeout(self.time_to_repair)
解决方案
我在尝试解决另一个使用请求方法的问题时遇到了这个问题的答案,如SimPy 语言cancel()
的高级功能第 2 节中详细描述的那样。
在我的具体示例中,我有一个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
推荐阅读
- python - 如何根据其他键更新默认字典中的值
- sql - 如何查询 SQL 作业所有者的可能登录名?
- python - 路由器连接失败
- c - 在c中使用Makefiles,声明变量多个定义
- javascript - React - 如何防止 onMouseDown 事件侦听器停止执行 onClick JSX 函数?
- git - 现有项目上的 Git 跟踪文件(并且没有先克隆)
- sql - 计算存储在 Google Big Query 中的 sql 中的 3 天滚动平均值
- angular - Angular11 渲染器 seStyle 不起作用
- apache-spark - 如何正确设置 spark.driver.log.dfsDir 参数?
- go - 有人可以为我笨拙地 go mod init 吗?