0
votes

Courir python à l'heure précise

Je travaille sur un programme Python. Il doit fonctionner toutes les 15 minutes. Il attend actuellement 870 secondes (14,5 mins) avant de courir à nouveau, mais à mesure que le temps nécessaire pour terminer l'action varie, il est parfois arrivé avant que cela ne soit 15 minutes depuis sa dernière course, parfois après 15 minutes.

Mon code pour Cette partie ressemble actuellement à ceci: p>

print(colour.BOLD, colour.PURPLE, "Finished", colour.END)
    print(colour.BOLD, colour.BLUE, 'WAITING 15 MINUTES (900 SECONDS)', colour.END)
    time.sleep(870)


3 commentaires

Stockez la première fois .. Vérifiez si cela fait 15 minutes .. Mettez à jour l'heure et exécutez la tâche à nouveau. N'essayez pas d'utiliser votre sommeil Suivez la boucle ci-dessus à nouveau et encore ..


Utilisez un cronjob


Quel système d'exploitation utilisez-vous?


3 Réponses :


1
votes

Je voudrais utiliser le module code> code>: https://pypos.org/ Projet / Calendrier /

Vous exécuteriez: P>

schedule.every().minute.at(":00").do(job)
schedule.every().minute.at(":15").do(job)
schedule.every().minute.at(":30").do(job)
schedule.every().minute.at(":45").do(job)


1 commentaires

Au cas où le script se bloque cette solution ne le redémarrera pas



1
votes

Utilisez vos outils OS pour obtenir des résultats similaires.

Ils sont très fiables et, en cas de défaillance de votre script, il fonctionnera quand même la prochaine fois. P>

Linux strong> de
Utiliser crontab.
Comment définir cela changera légèrement en fonction de votre distribution. p>

comme une idée générale: p> xxx pré>

à l'intérieur de l'écriture de crontab (assurez-vous de personnaliser le chemin exécutable Python et le chemin de script): P>

*/15 * * * * /usr/bin/python /path/to/your/script.py


1 commentaires

Bonjour @noah, si ma réponse vous était utile, veuillez envisager de la perfectionner et / ou de le choisir en tant que réponse finale. Merci!



0
votes

Avoir un script qui fait une chose à des intervalles discrets prenant le contrôle de son propre destin comme celui qui me rend Squirrely. J'utiliserais un cadre de planification externe pour exécuter ce travail à des intervalles discrets. À Linux, cela peut être fait avec des cronjobs; Dans Windows, cela peut être fait avec le planificateur de tâches.

Linux: Dans la borne, tapez xxx

pour éditer la planification de Cron pour le contexte actuel de l'utilisateur. Docs on Edition Cron peut être trouvé sur Internet - voici un: HTTPS: / /www.raspberrypi.org/documentation/linux/usage/cron.md

Windows: Vous pouvez planifier un script Python pour exécuter ce calendrier dans le planificateur de tâches Windows. Voici un lien qui marche à travers cela: https://www.esri.com/arcgis-blog/products/product/analytics/scheduling-a-python-script-or-model-àrun- AT-A-prescrit-time /

Soyez certain d'utiliser "si la tâche est déjà en cours d'exécution" et "exécuter la tâche dès que possible après un démarrage programmé" Options si vous Faites cette méthode pour contrôler le comportement approprié: Entrez la description de l'image ici


0 commentaires