【问题标题】:How to schedule a request at a particular time?如何在特定时间安排请求?
【发布时间】:2014-11-04 15:07:49
【问题描述】:

我将 simpy 3.xx 与 python 2.7 一起使用。 我正在尝试建立一个火车模拟。需要的是火车过程在模拟中的特定时间生成进入请求。这一定很简单,但由于某种原因,我无法找到解决方案。

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

【问题讨论】:

  • 您能提供更多您正在编写的代码吗?

标签: python simpy


【解决方案1】:

您应该从timeoutevent 开始。这是一个基于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()

【讨论】:

    猜你喜欢
    • 2012-08-01
    • 2023-01-09
    • 1970-01-01
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-24
    • 2020-09-21
    相关资源
    最近更新 更多