擅长:python、mysql、java
<p>问题是回调不是一个进程,因此它在simpy模拟引擎中的运行方式不能让引擎停止并重新启动。你需要的是一个过程。您可以通过从单独的回调函数启动当前的<code>simulationRun</code>进程,如下所示。在</p>
<pre><code>import simpy
if __name__ == '__main__':
env = simpy.Environment()
def simulationRun():
print("Starting a run at time [%i]" % env.now)
yield env.timeout(5)
print("Ending a run at time [%i]" % env.now)
def callback(event):
s = simulationRun()
env.process(s)
event = env.timeout(5)
event.callbacks.append(callback)
print("Starting simulation.")
env.run(20)
print("End of simulation.")
</code></pre>