python schedule模块定期运行一个函数

时间:2017-12-26 22:36:46

标签: python schedule

目标:每天在两次随机时间运行一个函数。

所以,我写了这个函数来随机生成一个时间(请提供关于如何简化的反馈。无法在现有的包中找到它 - 它必须已经存在......)

def gen_rand_time(low, high):
    hour = np.random.randint(low, high)
    minute = np.random.randint(1,59)
    if minute < 10:
        time = str(hour)+':'+str(0)+str(minute)
        return time
    else:
        time = str(hour) + ':' + str(minute)
        return time

接下来我定义了我想要运行的函数。保持简洁。

def test(a):
    print('TEST: ' + str(a))

现在我想定期运行这个交汇点。我使用计划包。

def run_bot():
    time1 = str(gen_rand_time(18,19))
    print(time1)
    schedule.every(1).days.at(time1).do(test('TEST WORKED'))
    while True:
        schedule.run_pending()
        time.sleep(1)
run_bot()

当我运行run_bot()并在近期投入时间(例如,将来1分钟)时,test()函数返回“TEST:TEST WORKED”而不等待指定的随机时间。

1 个答案:

答案 0 :(得分:1)

您应该尝试... do(test,'TEST WORKED') 而不是... do(test('TEST WORKED')),请参阅this

此外,您似乎无法对lowhigh使用相同的值(我想知道您是否真的尝试过发布的内容)。