SimPy 使用逻辑在两个或多个资源之一之间进行选择
SimPy using logic to choose between one of two or more resources
我如何为进程提供从两个或多个不同资源中进行选择的选项?
我需要这样做,因为我将维护活动模拟为流程,资源代表可用于执行维护的共享设施。一些维护活动只能使用一种类型的设施,但其他维护活动更灵活,可以选择使用多种类型的设施。
因此,在 SimPy 术语中,一个进程只能选择一种唯一类型的资源,但其他进程可以从多种唯一类型的资源中进行选择。
对我要实现的目标的粗略解释:
resource_A_req = resource_A.request()
resource_B_req = resource_B.request()
yield resource_A_req or resource_B_req
学习如何使用 FilterStore 是否可以解决我的问题?
yield resource_A_req | resource_B_req
可能适合您。然后您需要检查哪个请求成功并在另一个请求上调用 cancel()
以避免出现问题(在文档中搜索 "condition events")。
FilterStore
也可能有效。有关简短示例,请参阅 this answer。
我如何为进程提供从两个或多个不同资源中进行选择的选项?
我需要这样做,因为我将维护活动模拟为流程,资源代表可用于执行维护的共享设施。一些维护活动只能使用一种类型的设施,但其他维护活动更灵活,可以选择使用多种类型的设施。
因此,在 SimPy 术语中,一个进程只能选择一种唯一类型的资源,但其他进程可以从多种唯一类型的资源中进行选择。
对我要实现的目标的粗略解释:
resource_A_req = resource_A.request()
resource_B_req = resource_B.request()
yield resource_A_req or resource_B_req
学习如何使用 FilterStore 是否可以解决我的问题?
yield resource_A_req | resource_B_req
可能适合您。然后您需要检查哪个请求成功并在另一个请求上调用 cancel()
以避免出现问题(在文档中搜索 "condition events")。
FilterStore
也可能有效。有关简短示例,请参阅 this answer。