[PYTHON] Verhindern Sie den doppelten Start des Befehls django

Der Befehl django ist ein Befehl, der von 'python manage.py ~' ausgeführt wird. Standardmäßig werden viele nützliche Befehle wie Shell bereitgestellt. Obwohl hier nicht im Detail erklärt, ist es möglich, benutzerdefinierte Befehle zu erstellen. Und der benutzerdefinierte Befehl usw. wird oft als Stapel wie crontab ausgeführt, aber aus irgendeinem Grund werde ich versuchen, nicht doppelt zu starten.

custom_command.py


import sys
import commands
from django.core.management.base import BaseCommand

def is_process_exist(process_name):
    """
Gibt True zurück, wenn dieser Prozess ausgeführt wird
    """
    output = commands.getoutput("ps -ef | grep '%s' | grep -v grep | wc -l" % (process_name))
    is_exist = int(output) >= 2

    return is_exist


class Command(BaseCommand):
    def handle(self, *args, **options):
        #Doppelte Startprüfung
        if is_process_exist(__name__.split('.')[-1]):
            sys.exit('duplication!')

        #Die folgende Verarbeitung ~

Recommended Posts

Verhindern Sie den doppelten Start des Befehls django
Zusammenfassung der häufig verwendeten Befehle von Django (Anfänger)
Doppelstart in Python verhindern (verbesserte Version)
Django DB-Initialisierungsbefehl
Starten Sie meine Django-App
Die Geschichte, die Django befiehlt, ignoriert USE_I18N
Eindrücke, Django zu berühren
[Django-Serie] Grundlegende Befehle
(Minimale) Verwendung von Django Logger
Doppelte Submit-Unterdrückung mit Django
[Django] Organisiere Befehle und Rollen