Python 如何使用APSCHEDULER安排作业始终在每月的最后一天运行

Python 如何使用APSCHEDULER安排作业始终在每月的最后一天运行,python,apscheduler,Python,Apscheduler,我有一个flask应用程序,它的作业每分钟运行一次(向端点发送请求并存储一些数据)。但现在我想做一份总是在每个月最后一天进行的工作 我已经储存了每个月的最后一天 from datetime import datetime import calendar now = datetime.now() year = now.year month = now.month lastDay = calendar.monthrange(year, month)[1] 我做了一份工作,但我不确定这是每个月还是

我有一个flask应用程序,它的作业每分钟运行一次(向端点发送请求并存储一些数据)。但现在我想做一份总是在每个月最后一天进行的工作

我已经储存了每个月的最后一天

from datetime import datetime
import calendar

now = datetime.now()
year = now.year
month = now.month
lastDay = calendar.monthrange(year, month)[1]
我做了一份工作,但我不确定这是每个月还是只工作一次

def graphs():
    locale.setlocale(locale.LC_TIME, 'pt_PT.UTF-8')
    getMonth()

scheduler = BackgroundScheduler()
scheduler.add_job(func=graphs, trigger='cron', year=year, month=month, day=lastDay)
scheduler.start()

如果你想让它每个月、每年都起作用,你需要写:

from datetime import datetime
import calendar

def graphs():
    locale.setlocale(locale.LC_TIME, 'pt_PT.UTF-8')
    getMonth()

scheduler = BackgroundScheduler()
scheduler.add_job(func=graphs, trigger='cron', year='*', month='*', day='last')
scheduler.start()
使用诸如
*
last
之类的表达式在每个值上触发,或在月份的最后一天触发,在使用调度器时非常有用


有关更多详细信息,您可以查看此

,因此如果我有此功能,它将仅在每月的最后一天完成此工作?他每天检查当天是否是当月的最后一天?如果您希望每月只在当月的最后一天执行此项工作,最好的选择是在字段“月”和“年”中输入一个表达式“*”(以便它在“年”和“月”值上激发)并在field day中添加一个表达式“last”,以便它在该月的最后一天启动。您不需要存储年份、月份或最后一天。我编辑了我的答案,这样你就可以直接得到所有的信息。哦,很好,所以它会在每个月的最后一天触发,而不分配任何变量?是的。表达式
*
可用于任何字段(例如年或月),以在每个值上触发,表达式
last
可用于在月内的最后一天触发。如果这个答案对您有帮助,请毫不犹豫地将其标记为“已接受”。此处的
表达式是多余的,可以省略。