Как получить несколько запросов, но принять только один запрос в Simpy - PullRequest
1 голос
/ 02 апреля 2020

В Simpy у меня есть несколько ресурсов, которые могут выполнять одну и ту же работу, но они разные, поэтому я не могу просто увеличить емкость. Представьте себе одну очередь в торговом центре, которая ведет ко всем кассирам. Некоторые из них укомплектованы, а некоторые служат себе. Я помещаю запрос на оба (два отдельных запроса), а затем выдаю rq_manned ИЛИ rq_selfserve, удовлетворенный, если удовлетворен хотя бы один из запросов.

Проблема в том, что, если они оба станут доступны одновременно, Я не хочу просить их обоих. Что делать?

1 Ответ

0 голосов
/ 22 апреля 2020

Примерно так может работать:

with rq_manned.request() as manned_req, rq_selfserve.request() as sserve.req:
   result = yield manned_req | sserve.req
   if manned_req in result:
      do_manned_register_stuff()
   else:
      do selfserved_register_stuff()
...