几乎在同一时间安排数千个任务

时间:2016-07-20 00:48:03

标签: python scheduler

我有一个拥有多个主机的网络。然后我有一个流量发生器来安排"流动"并告诉主持人启动它们。

流量生成器计算必须使用其初始时间进行调度的流列表。因此,每次必须在主机中启动流时,都会调用一个函数,并告诉正在侦听命令的主机启动流。

因此调度非常简单:

for flow in flows:
    self.scheduler.enter(flow["start_time"],1, self.startFlowSingle,[flow])
self.scheduler.run()

def startFlowSingle(self,flow):
    #sends command to the server
    clientName = self.topology.getHostName(flow["src"])
    self.unixClient.send(json.dumps({"type":"flow","data":flow.toDICT()}),clientName)

在上面的代码中,self.scheduler是一个sched.scheduler对象,self.unixClient用于向主机发送命令。

然而,如果100个流程必须在完全相同的时间开始,调度程序将按顺序发送所有命令,并且根据延迟,我猜这将使我的流程延迟(以及我不喜欢的东西)。真的很想。)

有更好或更有效的方法吗?

0 个答案:

没有答案