有没有解决Python定时执行程序问题的方法?

    Python定时执行程序(schedule)

    使用schedule库

    import schedule
    import time
    def job():
        print("I'm working...")
    schedule.every(10).seconds.do(job) # 每10秒执行一次
    schedule.every().wednesday.at("13:15").do(job) # 每周三13点15执行
    schedule.every(10).minutes.do(job) # 每10分钟执行一次
    schedule.every().hour.do(job) # 每小时执行一次
    schedule.every().day.at("10:30").do(job) # 每天十点半执行
    schedule.every(5).to(10).minutes.do(job) # 每5-10分钟随机执行一次
    schedule.every().monday.do(job) # 每周一执行
    schedule.every().minute.at(":17").do(job) # 每分钟的17秒执行一次
    while True:
        schedule.run_pending() # 运行所有可运行的任务

    如果是要定在4:30执行,一定要写schedule.every().day.at("04:30").do(job)

    而不能只写schedule.every().day.at("4:30").do(job)

    注意,如果程序执行的时间要比你设定的时间间隔短,就是下一次定时程序开始执行的时候你上一次程序还没有执行完的话,就会新开进程。

    进程堆叠多了就会成灾难

    python定时执行任务(schedule)时间延迟踩坑实录

    通过schedule设置定时执行某个任务

    import schedule
    import time
    # 定义某个任务
    def job():
        ...
    # 设置执行时间
    schedule.every().seconds.do(job) # 每秒执行一次任务
    schedule.every().minutes.do(job) # 每分钟执行一次任务
    schedule.every().hour.do(job) # 每小时执行一次任务
    # 可以指定具体时间间隔
    schedule.every(10).minutes.do(job) # 每10分钟执行一次任务
    # 设置每天某一时刻执行
    schedule.every().day.at("05:15").do(job) # 每天凌晨5点15分执行任务
    # 设置星期几执行
    schedule.every().monday.at("05:15").do(job) # 每周一凌晨5点15分执行任务
    while True:
        schedule.run_pending() # 运行所有可运行的任务

    踩坑问题

    第一个注意的点是,你要先在手动运行程序来开启服务(此时程序会暂停),然后才会在指定时间继续执行。

    第二个注意的点是,在使用时,因为程序运行时间的存在,会出现时间延迟问题。比如通过代码设置每10分钟跑一次,

    schedule.every(10).minutes.do(job) # 每10分钟执行一次任务

    结果出现

    但是即下一次执行时间是从上一次程序运行结束时间+10min来的,而我希望的应该是从上一次程序开始运行+10min,即正确的应该是10:20:21,这样下去会导致时间延迟越来越大。

    解决方法

    只需要加上一个具体时刻(这里设置的是15s):

    schedule.every(10).minutes.at(":15").do(job) # 每10分钟过15s执行程序

    也就是说,在10:00:21开启服务,

    第一次执行 10:10:15,
    第二次执行 10:20:15,
    第三次执行 10:30:15,

    这样就解决了程序运行时间导致的时间延迟问题。

    注意!!! 首次开启服务,一定要在当前时间的15秒之后运行程序,才是正常的。

    比如在10:00:08开启服务,下一次会在10:09:15分执行(异常)

    比如在10:00:21开启服务,下一次会在10:10:15分执行(正常)

    以上就是有没有解决Python定时执行程序问题的方法?的详细内容,更多请关注昆居客【www.kunjuke.com】。

    相关推荐:

    小米米家定时燃气灶 3 白色 5200W 开售:一级能效、双边定时,1199 元

    感谢网友 很宅很怕生 的线索投递! 7 月 12 日消息,小米米家定时燃气灶 3 白色 5200W 现已在京东等平台开售,零售价 1399 元,新品到手价 1199 元。从商品页面获悉,这款新品支持 5200W 火力,达到新一级能效标准、70% 超高热效率,内环火快速聚热,外环火均匀加热,230° 无级调火。内外双层 168 个燃烧喷射孔,230° 精度阀体旋钮。该产品还支持双边定时功能,1-18...

    迷你世界萌眼星怎么解决氧气问题

    迷你世界游戏里面有很多的内容,今天给大家带来了游戏里面的萌眼星解决氧气问题方法,还有小伙伴不清楚萌眼星怎么解决氧气问题,那么下面就是相关的内容. 迷你世界萌眼星解决氧气问题方法 巨人雕像! 看看说明多么的含蓄,只是说明了是击败远古石巨人获得的,根本没有提及无限氧气嘛~ 不过当使用星启石点亮时~它发出了不一样的光彩~ 让我们时刻有紧迫感的氧气罩倒计时图标不见了,在氧气罩内就跟在地球一样,可以愉快的玩...

    酷狗大字版app定时关闭设置

    酷狗大字版怎么设置定时关闭,打开软件,在我的界面找到并点击右上角的“齿轮”选项,在设置界面往下滑动,找到并点击“定时关闭”选项,最后,在弹出的选项框中选择好时间即可。 酷狗大字版app定时关闭设置: 1、首先,打开软件,在我的界面找到并点击右上角的“齿轮”选项; 2、在设置界面往下滑动,找到并点击“定时关闭”选项; 3、最后,在弹出的选项框中选择好时间即可。 以上就是小编整理带来的酷狗大字版怎么设...

    OPPO Reno2如何设置定时开关机与睡眠模式【技巧】

    OPPO Reno2用户需同时设置定时开关机和睡眠模式:定时开关机通过“设置→其他设置→定时开关机”启用并设定时间,依赖ColorOS 11底层调度;睡眠模式通过控制中心月亮图标或“设置→声音与振动→免打扰模式”配置自动启停,屏蔽通知但不关机;二者配合实现夜间静音与自动断电双重防护。 OPPO Reno2用户想让手机在晚上自动关机、早上自动开机,同时避免睡前被消息打扰,需要同时配置定时开关机和睡眠...

    OPPO Reno2屏幕护眼模式与深色模式定时切换教程【操作】

    OPPO Reno2用户可通过设置定时开启夜间护眼与暗色模式实现夜间自动降蓝光+深色界面。需分别进入【设置→显示与亮度→夜间护眼】和【暗色模式】,设定完全一致的自定义时段(如20:00–06:30)或启用日出日落联动(需授位置权限),并调节色温至70%~85%;控制中心支持月亮(暗色)、眼睛(护眼)图标一键同步开关。 OPPO Reno2用户需要在夜间自动降低屏幕蓝光并切换深色界面,避免手动反复操...

    怎么使用ChatGPT解决etcd集群数据不一致的问题

    ChatGPT不能修复etcd数据不一致,因其无SSH权限、无法访问真实节点文件/日志/证书,且误操作会导致节点永久失联;仅能在人工提供完整上下文后辅助生成命令。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ ChatGPT无法直接介入生产环境执行命令、读取etcd证书、访问节点文件系统或调用etcdctl,它不能替代运维人员在K8S集群中...

    芒果浏览器怎样设置夜间定时关闭_芒果浏览器设置夜间定时关闭【健康】

    可通过系统深色模式联动、第三方自动化工具或网页脚本三种方式实现芒果浏览器夜间定时启用/关闭夜间模式:一、开启系统深色模式定时并设置浏览器跟随;二、用Tasker等工具定时模拟点击“Aa”切换;三、对固定网站注入JS脚本按时间自动启停深色样式。 如果您希望芒果浏览器在夜间特定时段自动启用夜间模式并定时关闭,以减少蓝光暴露、保障睡眠节律,则可通过组合使用浏览器内置功能与系统级设置实现。以下是多种可行的...

    iPhone 17怎么设置定时拍照 苹果17倒计时拍摄操作方法

    iPhone 17全系支持原生3秒/10秒定时拍照,操作路径为:打开相机→上滑展开工具栏→点击钟形图标→选择时长→点快门启动倒计时;亦可通过控制中心或快捷指令实现一键唤出或自定义延时,第三方App则提供更专业定时功能。 你想在iPhone 17上拍一张自拍合影,但手一碰屏幕就晃,又没三脚架,需要几秒缓冲时间——这时候必须用定时拍照功能,它能让你放下手机、站进画面、整理表情,最后自动完成拍摄。 原生...