0

如何为流程提供从两个或多个不同资源中进行选择的选项?

我需要这样做,因为我将维护活动模拟为流程,资源代表可用于执行维护的共享设施。一些维护活动只能使用一种类型的设施,但其他维护活动更灵活,可以选择使用多种类型的设施。

因此,在 SimPy 术语中,一个进程只能选择一种唯一类型的资源,而其他进程可以从多种唯一类型的资源中进行选择。

对我要达到的目标的粗略解释:

resource_A_req = resource_A.request()

resource_B_req = resource_B.request()

yield resource_A_req or resource_B_req

学习如何使用 FilterStore 可以回答我的问题吗?

4

1 回答 1

1

yield resource_A_req | resource_B_req可能对你有用。然后,您需要检查哪个请求成功并调用cancel()另一个请求以避免出现问题(在文档中搜索“条件事件”)。

FilterStore也可能有效。有关简短示例,请参见此答案

于 2017-01-25T13:43:45.320 回答