使用随机函数随机化计划任务

时间:2013-06-05 01:40:46

标签: python python-2.7 random scheduled-tasks scheduling

我正在尝试使用代码:

import random
import datetime
from sched import scheduler
from time import time, sleep

s = scheduler(time, sleep)
random.seed()

def run_periodically(start, end, interval, func):
    event_time = start
    while event_time < end:
        s.enterabs(event_time, 0, func, ())
        event_time += interval + random.random(-5, 45)
    s.run()

getData()#######

run_periodically(time()+5, time()+1000000, 10, getData)

我试图让预定的时间和/或预定的时间间隔有一定程度的随机化,目前代码返回

typeError: random() takes no arguments (2 given)

如果有人能告诉我如何解决这个问题或提供替代方法,我们将不胜感激。

2 个答案:

答案 0 :(得分:4)

在终端中输入help(random.random)(如果您正在使用iPython,则输入random.random??),然后您就可以获得:

random() -> x in the interval [0, 1).

所以它没有采取任何输入,这是错误背后的原因。要生成特定范围内的随机数,您可以使用random.randint(与random.randrange相关联)。

所以对你的情况来说就是这样:random.randint(-5,45)

答案 1 :(得分:1)

random.random不是你想要的功能。您希望使用random.randrangerandom.randint,具体取决于您的版本。

有关详细信息,请参阅http://docs.python.org/2/library/random.html