Ordre d'exécution des scripts et programmes
Description
Transcription
0:00 J'avais un script qui était programmé avec une tâche crone, donc c'est une espèce de tâche planifiée. C'est un petit fichier où on décrit quand est-ce qu'un programme ou un script doit se lancer, à une heure donnée ou une date. Vous écoutez S'informer sur la tech. Sécurité, informatique, hack et loisirs techniques. Et donc j'avais une tâche planifiée pour mes podcasts qui, en fait, concaténait tous les podcasts que j'ai.
0:30 Mancast V, Mancast Sport, etc. Pour en faire Mancast Premium qui était normalement le best-of de tous ces podcasts. Et donc je disais, j'avais une tâche planifiée qui faisait le tour de tous ces podcasts et qui recompilait pour pouvoir rafraîchir le flux de ce Mancast Premium. C'est comme ça que ça s'appelle. Pourquoi je vous parle de ça ?
0:50 C'est la problématique qu'on se pose quand on veut planifier des tâches. Il y a des tâches qui doivent s'exécuter tous les jours. Il faut quand un traitement doit se faire quotidiennement. Et encore, il faut que ce traitement puisse prendre en compte que le traitement précédent soit terminé. Je prends l'exemple d'une sauvegarde.
1:10 Imaginons, vous êtes un malade et vous voulez sauvegarder toutes les 10 minutes les modifications qu'il y a eu sur votre disque dur. Alors je dis que vous êtes un malade, ne vous inquiétez pas, je suis le premier à le faire. Sauf que si la précédente sauvegarde n'a pas terminé, il ne faut pas qu'au bout de 10 minutes, la suivante réenchérisse en se marchant dessus.
1:33 Alors il y a plusieurs techniques. Il y a la technique du PID, c'est-à-dire que le script va vérifier qu'il n'y a pas déjà un script qui est déjà en route. Donc là, qu'est-ce qu'on fait ? On arrête le traitement de la nouvelle exécution et puis la précédente se termine. Et la prochaine sauvegarde se fera au prochain déclenchement.
1:55 Donc ça veut dire qu'on a sauté une sauvegarde. Mais au moins, on ne superpose pas l'exécution des scripts ou des programmes. Donc ça, c'est la méthode du PID. Et il y a une deuxième méthode qui est plutôt la gestion de fil d'attente. C'est-à-dire que vous exécutez un script, mais ce script, avant de s'exécuter, il va se mettre dans la fil d'attente de toutes les exécutions qui doivent être effectuées.
2:25 L'avantage, c'est qu'au moins, ça ne se superpose pas. Et vous savez que, avant d'exécuter le script suivant, le script précédent doit se terminer. C'est pas mal. Ça permet, s'il y a un souci, au moins, vous savez que vous avez une fil d'attente de traitement qui est à faire. Et vous savez où vous en êtes. Vous n'êtes pas obligé de gérer des PID.
2:50 Parce que le problème du PID, c'est que si le script se vôtre, le PID est toujours là. Et donc, vous n'avez plus aucune sauvegarde qui se fait. Donc, c'est un peu dangereux. L'inconvénient d'une gestion de fil d'exécution, c'est que vous ne pouvez pas paralyser les traitements. Et oui, tant que vous faites un traitement, le reste des autres traitements ne se font pas.
3:09 Donc, il faut arriver à, à la fois, paralyser les traitements et à les séquencer. Donc, en fait, il faut jouer sur des options en disant, ce traitement peut être paralysé, que celui-ci, il ne peut y avoir qu'une seule exécution à la fois. C'est toute une réflexion à avoir au moment de programmer un script et au moment de le mettre en œuvre.
3:32 Alors, pour revenir à mon système de mutualisation des podcasts, tout compte fait, j'ai arrêté ce script qui s'exécutait, je crois, toutes les heures, parce que ça pouvait, alors ça ne l'a pas encore fait, mais ça pouvait générer des erreurs au niveau du flux, au niveau des fichiers, des bouts de fichiers qui sont copiés, mais pas entièrement.
3:55 Quoique, ce n'était pas tout à fait vrai, parce qu'en fait, je ne copiais pas des fichiers, mais je faisais des liens symboliques entre les fichiers. Donc, en fait, j'avais évacué peut-être ce souci, comme ça. Ce qui n'est pas une mauvaise chose, tout compte fait.
4:12 Bon, mais voilà, ça m'a permis de vous introduire la notion de gestion de sémaphore, de PID ou de fil d'exécution. C'est pas mal en informatique, ça répond à pas mal de choses. Quand vous programmez des tâches planifiées, ben oui, vous vous posez insidieusement cette question, dire ok, je vais exécuter cette tâche, puis cette tâche, donc il y a une notion d'ordre.
4:37 Et est-ce que vous vous êtes déjà dit, est-ce que je peux exécuter cette tâche et cette tâche en même temps ? C'est pas mal, comme réflexion. Le multitâche, le monotâche, l'exécution séquentielle, voilà. Pour revenir à mon script, j'ai opté pour les liens symboliques, mais ça, c'est un autre programme. N'hésitez pas à consulter ma chaîne vidéo YouTube pour connaître la différence entre les liens et les liens symboliques sous Linux.
5:02 Concernant mes scripts, j'ai fini pour le moment, je vous dis à la prochaine pour encore plus de découvertes, et pourquoi pas parler de NAS. Oui, oui, j'ai une grande annonce à vous faire. Ouais, bon d'accord, vu que je suis content, ça veut dire que ça a avancé. Mais vous allez savoir pourquoi ça a pris autant de retard.
5:16 Je suis bordelique, c'est ça ? Bye bye, c'est ça pour vous servir. C'était s'informer sur la tech et les loisirs techniques.
5:27 Réagissez à cet épisode et retrouvez plus d'informations sur celui-ci dans la description.
Commentaires 0
Personne n'a encore réagi. Écrire le premier commentaire.