如何安排生产python脚本以触发函数在每天的指定时间运行

Posted

技术标签:

【中文标题】如何安排生产python脚本以触发函数在每天的指定时间运行【英文标题】:How to schedule a production python script to trigger a function to run at a specified time every Day 【发布时间】:2022-01-22 07:58:33 【问题描述】:

我正在尝试安排一个 python 脚本(函数)从数据库(源数据库)中获取数据并将它们转储到 S3 存储桶(目标数据库)中。这将在生产中使用,我想要一个触发该作业在每天特定时间运行而无需人工干预的时间表。请问我该怎么做。

我已经尝试使用下面的示例代码,如果我的电脑关闭,这往往会停止,并且当我再次运行代码时可能会重新启动,这不是我想要的。

"""
Demonstrates how to use the blocking scheduler to schedule a job that executes on 3 second
intervals.
"""

from datetime import datetime
import os

from apscheduler.schedulers.blocking import BlockingScheduler


def tick():
    print('Tick! The time is: %s' % datetime.now())


if __name__ == '__main__':
    scheduler = BlockingScheduler()
    scheduler.add_job(tick, 'interval', seconds=3)
    print('Press Ctrl+0 to exit'.format('Break' if os.name == 'nt' else 'C'))

    try:
        scheduler.start()
    except (KeyboardInterrupt, SystemExit):
        pass

【问题讨论】:

【参考方案1】:

您是否需要此脚本在 Windows 上运行或使用少于一分钟的时间间隔?如果没有,那么设置 cron 作业 以便在需要时调用您的脚本会更容易。然后脚本只包含任务本身:

#!/usr/bin/env python3

from datetime import datetime

if __name__ == '__main__':
    print('Tick! The time is: %s' % datetime.now())

【讨论】:

“cron 作业”是一个 Unix 术语。在 Windows 中,您将搜索“计划任务”或“任务计划程序” 是的,我希望在 Windows 上实现它。

以上是关于如何安排生产python脚本以触发函数在每天的指定时间运行的主要内容,如果未能解决你的问题,请参考以下文章

在构建脚本中获取触发原因

生产经理如何自我驱动,从而落实每天工作安排,最终达成生产效率提升?

如何安排不使用Windows任务计划程序运行bat文件?

每天在不同时间触发本地通知

如何在 Azure Logic 应用程序中为每两分钟触发器安排天数和小时数?

安排通知每天在 X h:Y s 触发并重定向到特定视图