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 
