首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中的Timed方法

Python中的Timed方法
EN

Stack Overflow用户
提问于 2016-09-01 21:30:25
回答 3查看 89关注 0票数 2

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-09-01 21:48:05

您可以将调用此方法放在一个循环中,该循环将休眠一段时间

代码语言:javascript
复制
from time import sleep
while True:
    sleep(1200)
    my_function()

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

代码语言:javascript
复制
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()

但是,我认为使用脚本进行系统调用会是一个更好的解决方案。

票数 0
EN

Stack Overflow用户

发布于 2016-09-01 22:04:35

模块schedule可能对此很有用。有关详细信息,请参阅How do I get a Cron like scheduler in Python?答案。

票数 1
EN

Stack Overflow用户

发布于 2016-09-01 21:56:06

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39272925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档