我使用simpy 3.xx和python 2.7。 我试图建立一个火车模拟。所需要的是列车过程在模拟中的特定时间生成进入请求。这一定必须非常简单,但由于其他原因,我无法找到解决方案。
让我们在模拟时间20说我想要一个生成请求事件的过程,我该怎么做呢?通常我会生成一个请求:req = res.request(),然后产生req。我希望在特定时间安排一个请求活动。
答案 0 :(得分:0)
您应该从timeout
事件开始。这是一个基于the tutorial的超时事件。如您所述,这会在时间20生成请求事件。
#at time 20 generate a request event
import simpy
class TrainStation:
def __init__(self,env):
self.env= env
self.request_event = env.event()
self.request_receiver_process = env.process(self.receive_request())
self.request_producer_process = env.process(self.produce_request())
def produce_request(self):
yield self.env.timeout(20)
self.request_event.succeed()
self.request_event = self.env.event()
def receive_request(self):
print("Waiting for request at time: {0}".format(env.now))
yield self.request_event
print("Request received at time: {0}".format(env.now))
env = simpy.Environment()
trainStation = TrainStation(env)
env.run()