Python中的定时方法

时间:2016-09-01 13:30:25

标签: python

如何在设定的时间每天运行python脚本的一部分(只有一个方法,整个脚本全天候运行),每20分钟一次?每小时12:20,12:40,13:00。

我不能使用cron,我尝试过定期执行,但这并不像我那样准确......这取决于脚本的开始时间。

3 个答案:

答案 0 :(得分:1)

模块schedule可能对此有用。见答案 How do I get a Cron like scheduler in Python?了解详情。

答案 1 :(得分:0)

你可以把这个方法调用一个循环,这会睡一段时间

from time import sleep
while True:
    sleep(1200)
    my_function()

并偶尔触发,您可以使用datetime来比较当前时间戳并设置下一次执行。

import datetime

function_executed = False
trigger_time = datetime.datetime.now()

def set_trigger_time():
    global function executed = False
    return datetime.datetime.now() + datetime.timedelta(minutes=20)

while True:
    if function_executed:
        triggertime = set_trigger_time()

    if datetime.datetime.now() == triggertime:
        function_executed = True
        my_function()

我认为无论如何系统调用脚本都是一个更好的解决方案。

答案 2 :(得分:0)

例如使用redis和rq-scheduler包。您可以按特定时间安排任务。因此,您可以运行第一个脚本,保存到变量开始时间,计算开始时间+ 20分钟,如果您当前的脚本将结束,最后您将按适当的时间推送另一个相同的任务。