0
votes

Python - Run Script périodiquement

En ce moment, j'ai des scripts que je veux courir automatiquement et périodiquement, disons tous les deux jours.

La façon dont j'ai structuré ressemble à ceci.

script1: xxx

script2: xxx

script3: xxx

comme vous remarquerez , "Script1" et "script2" appelez déjà leur fonction principale, donc dans "script3", je n'ai besoin que d'importer les scripts et de ne pas appeler les fonctions (bien que cela fonctionne pour moi, je ne suis pas sûr de savoir si c'est une approche sécurisée / Bonne pratique).

Ma question: Si j'utilise calendrier pour exécuter 'script3' tous les x jours, cela signifie-t-il que le script fonctionnera à jamais ou est-ce qu'il exécute une fois tous x jours et passe ensuite en mode veille jusqu'à ce qu'il soit à nouveau exécuté? De plus, pour qu'il fonctionne, le PC doit toujours être toujours allumé, non?

Si tel est le cas, est-il un moyen de le rendre exécuté automatiquement et périodiquement avec le PC éteint?

Merci d'avance!


2 commentaires

Vous devez consulter TaskSchDuler pour Windows ou Cron pour Linux. Mais vous voulez que votre code fonctionne pendant que le PC est éteint ...?


Le réveil sur LAN pourrait aider à démarrer le PC avec des scripts, dans ce cas, le planificateur doit fonctionner sur un autre PC qui fonctionne toujours aussi. Mauvaise pratique à importer script1 qui exécutez quelque chose, définissez simplement la fonction, puis dans Script3 de script1 Importer exemple1 et exécutez-le Exemple1 () . Les applications de planificateur tentent de fonctionner sans beaucoup de chargement de la CPU.


3 Réponses :


0
votes

Si vous êtes sous Linux ou tout autre système d'exploitation basé sur UNIX, vous pouvez utiliser Cron pour la planification des travaux. Mais si vous arrêtez que les travaux de cron fonctionnent, le système s'arrête et les travaux cron s'arrêtent (ou ne fonctionnent pas).

Une alternative que vous pouvez enregistrer dans est anacron.


0 commentaires

1
votes

Je suppose que Windows Scheduler fonctionne de la même manière que les travaux de cron sous Linux. Ainsi, après avoir créé la "tâche", Windows vérifie chaque seconde pour voir s'il doit faire n'importe quelle tâche. Mais cela se fait toujours, cela n'a donc aucun impact sur la performance si c'est ce que vous êtes inquiet. Alors juste pour clarifier:

  1. Windows voit le fichier de commandes programmé et l'exécuter à temps.
  2. Windows Exécutez le script Python dans le fichier de commandes et le script se termine.
  3. Windows continue à vérifier le planificateur, mais le processus du script "est mort".

    pour la partie de le faire même avec le PC éteint, ce n'est pas possible.


0 commentaires

1
votes

Je ne suis pas sûr de savoir si c'est une approche sécurisée / bonne pratique

Le zen de Python dit; "Explicit est meilleur que implicite." Il est donc préférable d'utiliser: xxx

Il n'est généralement pas recommandé pour un module d'exécuter le code à l'importation. L'importation d'un module ne doit de préférence pas avoir d'effets secondaires.

Si j'utilise calendrier

Il y a probablement plus d'un programme nommé "calendrier". Pouvez-vous être plus spécifique?

Y a-t-il un moyen de le rendre exécuté automatiquement et périodiquement avec le PC éteint

Il y a plus d'une façon d'exécuter un script périodiquement. Des systèmes de type Unix telles que Linux ont cron et atrun . D'autres systèmes ont leur propre chemin.

mais tous ceux qui ne fonctionnent que lorsque la machine est sur . Tourner une machine à intervalles réguliers n'est généralement pas possible sur un PC sans matériel supplémentaire. Sauf si vous pouvez obtenir le Intel Management Engine pour faire votre enchère.

Les microcontrôleurs tels que l'ESP32 (qui peuvent exécuter micropython ) ont un mode "Sleep-Sleep" à cette fin, mais je doute, ils ne doutent pas qu'ils peuvent courir sélénium. : -)


0 commentaires