Как мне запланировать выполнение задания всегда в последний день месяца с помощью APSCHEDULER? - PullRequest
1 голос
/ 24 сентября 2019

У меня есть приложение фляги, у которого есть задание, которое выполняется каждую минуту (отправляет запрос в конечную точку и сохраняет некоторые данные).Но теперь я хочу сделать работу, которая выполняется всегда в последний день каждого месяца.

Я уже сохранил последний день каждого месяца

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()

1 Ответ

0 голосов
/ 24 сентября 2019

Если вы хотите, чтобы он работал каждый месяц, каждый год, вам нужно написать:

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 для включения каждого значения или включенияпоследний день месяца очень полезен при работе с планировщиком.

Для получения более подробной информации вы можете проверить эту документацию

...