from django.db import connection import logging import sys from manage import main logger = logging.getLogger("locking_manage") logger.setLevel(logging.DEBUG) formatter = logging.Formatter( '%(asctime)-24s|%(levelname)-7s|%(name)-4s:%(lineno)-2d: %(message)s') console_h = logging.StreamHandler(sys.stderr) console_h.setLevel(logging.DEBUG) console_h.setFormatter(formatter) logger.addHandler(console_h) with connection.cursor() as c: # acquisisco un lock con una chiave che รจ unica per questa applicazione logger.info("Acquisizione advisory lock:") c.execute("select pg_advisory_lock(132306982255);") logger.info("advisory lock acquisito.") logger.info("Eseguo manage.py con argomenti %s", sys.argv) main() logger.info("Rilascio advisory lock") # il lock viene rilasciato automaticamente