2 votes

Exécuter un script php ou py une fois à un moment unique et dynamique souhaité.

J'ai un petit robot actuellement écrit en php mais je peux passer à py si nécessaire.

Il recueille essentiellement des données à partir d'une API sur les tâches qui doivent être exécutées une seule fois afin d'être mises à jour le lendemain à certaines heures uniques.

Chaque jour à UTC+0 00:00 j'utilise un cron job pour rassembler ces données à partir de l'api.

Par exemple, une tâche peut devoir être exécutée à UTC+0 09:00 un autre à UTC+0 10:15 et un autre à UTC+0 11:30 . Le lendemain, de nouvelles tâches doivent être exécutées à des moments différents.

Maintenant, puisque ces tâches ne sont disponibles que pour ce jour-là, je ne pense pas que la mise en place d'une tâche cron pour chacune d'entre elles à l'heure souhaitée soit une solution, puis de supprimer la tâche cron.

Par conséquent, comment puis-je exécuter un script juste quand la tâche doit être mise à jour ?

Pour l'instant, j'exécute une tâche cron chaque minute et s'il y a une tâche dans une fourchette de minutes, j'exécute un autre script qui met à jour cette tâche mais cela me semble désordonné et je me demande si je peux faire quelque chose à ce sujet.

P.S. : J'utilise un droplet de digitalocean qui fonctionne sur Ubuntu 19.04 - disco

2voto

Soren A Points 5868

Pour programmer l'exécution d'une commande une fois dans le futur, vous pouvez utiliser at commandement. Voir la page du manuel ( man at ) pour savoir comment spécifier l'heure et la date.

À partir de php, vous pouvez utiliser le system () gamme de commandes permettant d'appeler n'importe quelle commande système, inclusivement at . Python possède également un système mais aussi une commande subprocess.run.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X