J'ai deux scripts qui mettent à jour le même fichier. Les deux peuvent fonctionner en même temps. Comment puis-je empêcher les mises à jour incohérentes du fichier? En d'autres termes, comment sérialiser l'accès au fichier?Synchronisation de l'accès inter-processus pour la mise à jour d'un fichier commun
Laissez-moi vous expliquer la question. Supposons qu'il existe un fichier d'étagère et que 2 scripts le mettent à jour. Script 1 fait ceci:
import shelve
sf = shelve.open('some_file')
sf[key1] = data1
sf.close()
Script 2 a le code suivant:
import shelve
sf = shelve.open('some_file')
sf[key2] = data2
sf.close()
scénario 2 est prévu Suppose après le script 1 ouvre le fichier. Lorsque le script 2 termine et contrôle le retour au script 1, le script 1 effectue sa mise à jour et ferme le fichier. Cela entraînera la mise à jour du script 2 se perdre. Comment empêcher que cela se produise afin que les deux mises à jour soient apportées au fichier?
Peut-il être fait en utilisant la bibliothèque standard ? Puis-je utiliser la fonction de verrouillage dans le module 'multiprocessing'? – debashish
'redlock' ne verrouille pas explicitement le fichier. Il crée un verrou sur une chaîne qui représente la ressource (fichier). Mais ça fait le travail. – debashish