如何在特定时间安排请求?

2024-03-29 06:28:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python2.7中使用simpy3.xx。 我在试着建立一个火车模拟系统。需要的是,列车进程在模拟中的特定时间生成一个进入请求。这一定很简单,但由于中小企业的原因,我无法找到解决方案。在

假设在模拟时间20,我想要一个进程来生成一个请求事件,我该怎么做呢?通常我会生成一个请求:req=回复请求(),然后生成req。我希望在特定时间安排请求事件。在


Tags: 进程时间事件原因解决方案req模拟系统xx
1条回答
网友
1楼 · 发布于 2024-03-29 06:28:20

您应该从一个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()

相关问题 更多 >