Contrôle exclusif avec fichier de verrouillage en Python

Je voulais avoir un contrôle exclusif entre les processus facilement avec python, donc je l'ai implémenté avec un fichier de verrouillage. L'environnement que nous vérifions est le suivant.

--mac (OS X El Capitan version 10.11.5) --pip disponible

Quoi utiliser

Une bibliothèque qui crée un fichier de verrouillage avec le nom spécifié et le contrôle exclusivement. Puisqu'il est géré par pid, lorsque le processus verrouillé se termine, l'état exclusif est libéré sans se fermer, il est donc facile à gérer même si une exception se produit. Je pense. Ci-dessous, installez comme d'habitude

$ pip install zc.lockfile

Exemple d'utilisation

Il n'y a pas de signification particulière, mais elle est mise en œuvre avec un décorateur. Il ne peut pas être utilisé lorsque vous souhaitez traiter correctement le processus verrouillé (comme la sortie d'un journal ou l'attente). Pour ceux qui veulent de toute façon un contrôle exclusif.

lock.py


# -*- coding: utf-8 -*-
import sys
from zc import lockfile
from zc.lockfile import LockError


def lock_or_through(func):
    '''Décorateur de contrôle exclusif par fichier de verrouillage
Par le processus lui-même s'il est verrouillé
    '''
    def lock(*args, **kwargs):
        lock = None
        try:
            lock = lockfile.LockFile('lock')
        except LockError:
            print("locked")
            return

        func(*args, **kwargs)

        #Si le pid cible n'est pas valide, il ne sera pas verrouillé, il n'y a donc pratiquement aucun problème même si une exception se produit.
        lock.close()

    return lock


@lock_or_through
def main(sys_argv):
    """Traitement que vous souhaitez contrôler exclusivement avec un fichier verrou"""
    print('process you need')

if __name__ == '__main__':
    main(sys.argv)

Recommended Posts

Contrôle exclusif avec fichier de verrouillage en Python
Accès exclusif aux fichiers entre les processus en Python
Opérations sur les fichiers en Python
Traitement de fichiers en Python
Manipulation de fichiers avec Python
Lire les données de la table dans un fichier PDF avec Python
Précautions lors du traitement des structures de contrôle dans Python 2.6
Grattage au sélénium en Python
Exploitez LibreOffice avec Python
Grattage avec chromedriver en python
Débogage avec pdb en Python
Dessiner un fichier netCDF avec python
Gérer les sons en Python
Grattage avec du sélénium en Python
Grattage avec Tor en Python
Tweet avec image en Python
Combiné avec ordinal en Python
Exécuter un fichier Python avec une importation relative dans PyCharm
Télécharger le fichier csv avec python
Sélectionnez le fichier dans la boîte de dialogue avec python → Afficher le nom du fichier dans la boîte de message
Reconnaissance des nombres dans les images avec Python
Extraire le fichier xz avec python
Tester avec des nombres aléatoires en Python
Manipulation de chemin de fichier / dossier en Python
GOTO en Python avec Sublime Text 3
Travailler avec LibreOffice en Python: import
[Python] Ecrire dans un fichier csv avec Python
Enregistrez le fichier binaire en Python
[Automatisé avec python! ] Partie 1: fichier de configuration
Téléchargement de fichiers implémenté avec Python + Bottle
Scraping avec Selenium en Python (Basic)
Création de Linebot et partage de fichiers avec Python
Analyse CSS avec cssutils en Python
Sortie vers un fichier csv avec Python
Numer0n avec des objets fabriqués avec Python
Ouvrez UTF-8 avec BOM en Python
Créer un fichier binaire en Python
Utiliser rospy avec virtualenv dans Python3
Utiliser Python mis en pyenv avec NeoVim
Heatmap avec dendrogramme en Python + matplotlib
Lire des fichiers en parallèle avec Python
Générer un mot de passe pour le manuel avec python
Essayez la simulation de contrôle de fréquence avec Python
Utiliser OpenCV avec Python 3 dans Window
ORC, opérations de fichier Parquet en Python
[Automatisé avec python! ] Partie 2: Fonctionnement des fichiers
Jusqu'à traiter de python dans Atom
Démarrez avec Python avec Blender
Travailler avec des images DICOM en Python
Lisez le fichier en Python avec un chemin relatif depuis le programme
Livre en spirale en Python! Python avec un livre en spirale! (Chapitre 14 ~)
Créer un fichier power simple avec Python
Essayez de vous connecter à qiita avec Python
Test de stress avec Locust écrit en Python
Python3> dans le mot clé> Vrai avec une correspondance partielle?
Surveillance des appareils effectuée par Python On-box de IOS-XE
Lire le fichier CSV avec python (Télécharger et analyser le fichier CSV)
Essayez de travailler avec des données binaires en Python
Vérifier l'existence du fichier avec python