Accès exclusif aux fichiers entre les processus en Python

Notez que j'ai étudié comment contrôler les fichiers exclusifs entre les processus en Python. Il y a un lockfile dans le document

This package is deprecated. It is highly preferred that instead of using this code base that instead fasteners or oslo.concurrency is used instead.

Puisqu'il y en a, essayez d'utiliser des attaches. Il est situé dans PyPI donc il est facile à installer avec pip:

pip install fasteners

Parmi les Exemples dans le document, cette fois le verrou interprocessus Je vais essayer. Il existe une méthode d'utilisation de «avec» et une méthode pour en faire un décorateur.

import os
import time
import fasteners

def main():
    pid = os.getpid()
    while True:
        print("Waiting...")
        with fasteners.InterProcessLock('/tmp/tmp_lock_file'):
            print('Locked by {}'.format(pid))
            time.sleep(2)
        time.sleep(1)

if __name__ == '__main__':
    main()

La partie à l'intérieur de «avec» est exécutée exclusivement.

import os
import time
import fasteners

@fasteners.interprocess_locked("/tmp/tmp_lock_file")
def action_with_lock():
    pid = os.getpid()
    print("{} has a lock".format(pid))
    time.sleep(1)

if __name__ == '__main__':
    action_with_lock()

Cliquez ici si vous souhaitez exécuter une fonction exclusivement. Les deux sont faciles à mettre en œuvre. C'est pratique car il n'est pas nécessaire de créer / tmp / tmp_lock_file à l'avance.

Recommended Posts

Accès exclusif aux fichiers entre les processus en Python
Contrôle exclusif avec fichier de verrouillage en Python
Opérations sur les fichiers en Python
Traitement de fichiers en Python
Manipulation de fichiers avec Python
Manipulation de chemin de fichier / dossier en Python
Différence entre list () et [] en Python
Création de Linebot et partage de fichiers avec Python
Créer un fichier binaire en Python
J'ai essayé d'étudier le processus avec Python
ORC, opérations de fichier Parquet en Python
Accéder à l'API Twitter avec Python
Fonction pour ouvrir un fichier en Python3 (différence entre open et codecs.open et comparaison de vitesse)
Différence d'authenticité entre Python et JavaScript
Différences entre Ruby et Python dans la portée
différence entre les instructions (instructions) et les expressions (expressions) en Python
Relancé de "pas d'accès Internet" en Python
Différence entre @classmethod et @staticmethod en Python
Différence entre append et + = dans la liste Python
Différence entre non local et global en Python
Ecrire le fichier O_SYNC en C et Python
Lisez le fichier ligne par ligne avec Python
Lisez le fichier ligne par ligne avec Python
[GPS] Créer un fichier kml avec Python
Accéder aux ressources S3 via Cognito en Python
Différences de multithreading entre Python et Jython
[Python] Lire la ligne spécifiée dans le fichier
Quadtree en Python --2
Python en optimisation
CURL en Python
Fichier python de script
Métaprogrammation avec Python
Python 3.3 avec Anaconda
SendKeys en Python
Créer un fichier GIF en utilisant Pillow en Python
DL, valeur d'octet et suppression de fichier en Python3
Lire un fichier contenant des lignes brouillées en Python
[python] Différence entre variable et self. Variable dans la classe
Du dessin de fichier au graphique en Python. Élémentaire élémentaire
Époque en Python
Discord en Python
Allemand en Python
DCI en Python
Traitement de fichiers Python
tri rapide en python
À propos de la différence entre "==" et "is" en python
nCr en python
[Python] Automatisation implémentée pour la copie de fichiers Excel
N-Gram en Python
Programmation avec Python
Constante en Python
Translocation de fichiers CSV en Python Partie 2: Mesure des performances
Un chercheur d'une société pharmaceutique a résumé l'analyse de fichiers en Python
FizzBuzz en Python
Fichier d'exécution GUI (WxPython) (pyInstaller) [Windows] dans Python3
Sqlite en Python
Étape AIC en Python