首页 > 解决方案 > Python - 每个月的第一个星期一运行作业

问题描述

背景:我需要每个月的第一个和第三个星期一为服务器运行自动任务。这应该通过 python 而不是 crontab 来实现。

我找到了 python 模块“schedule”,但它的文档并不详细。 https://pypi.org/project/schedule/

https://schedule.readthedocs.io/en/stable/

有人知道怎么做这个吗?

import schedule

def TestFunction():
    pass

schedule.every(1).monday.do(TestFunction)
schedule.every(3).monday.do(TestFunction)
schedule.run_pending()

这将在一年、每月的第一个星期一还是每个星期一执行?

标签: pythoncronschedule

解决方案


这是一个可能的解决方案:

import datetime

def something():
    day_of_month = datetime.now().day
    if (day_of_month > 7 and day_of_month < 15) or day_of_month > 21:
        return # not first / third monday of month
    # your code

schedule.every().monday.do(something())

调度程序将在每个星期一运行,但return如果这不是本月的第一个/第三个星期一。


推荐阅读