Как завершить симуляцию в SimPy 4

Есть ли способ завершить простую симуляцию с помощью такой команды, как env.exit()? Я не понимаю, как поместить событие в env.run(until=event). Я хочу завершить симуляцию, когда в моем определенном Simpy Stores не останется никаких объектов. Как я могу это сделать?


person Emin    schedule 17.02.2021    source источник


Ответы (1)


В simpy все является событием, даже сама среда. Таким образом, вы можете завершить маркировку симуляции после основного события.

# Save the event somewhere
end_event = env.event()

# Later, when you want to terminate the simulation, run
end_event.succeed()

Чтобы проверить, пусто ли хранилище, просто проверьте, равно ли его items len нулю.

Если вы соберете все вместе, вы можете сделать что-то подобное, чтобы решить вашу проблему:

store = simpy.FilterStore(env, capacity=10)
if len(store.items) == 0:
    end_event.succeed()
person Andrea    schedule 22.02.2021
comment
Большое тебе спасибо. Это очень полезно! - person Emin; 24.02.2021
comment
Добро пожаловать @kerim, я рад, что помог вам - person Andrea; 24.02.2021