24 lines
829 B
Python
24 lines
829 B
Python
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
|