2017-05-01 4 views
0

J'ai un travail APScheduler qui crée un rapport que notre client a demandé pour les premier et troisième lundis du mois.Exécution d'un travail APScheduler la veille du premier et du troisième lundi de chaque mois

Pour livrer cela dans le temps, je veux exécuter le travail le jour avant le le premier et le troisième lundi, qui ne peut pas être spécifié directement dans APScheduler.

J'ai remarqué un autre utilisateur a cette question ainsi, décrivant la demande comme impossible, dans les commentaires de Running APScheduler Job Every nth Day of Month

Répondre

0

Voici comment je l'ai résolu:

scheduler.add_job(func, 'cron', 'day_of_week'='sun', 'day'='last,1-6,14-20') 

En spécifiant le jour de la semaine, puis en spécifiant les jours du mois qui pourraient s'appliquer, il tirera la veille du premier et du troisième lundi. Il ne se déclenche que lorsque toutes les conditions sont remplies, donc les autres dates (qui ne seront pas le dimanche) ne se déclenchent pas.