Sharing a lock between gunicorn workers
I tried something, and it seems to work. I put preload_app = True
in my gunicorn.conf
and now the lock seems to be shared. I am still looking into exactly what's happening here but for now this is good enough, YMMV.
Follow peterw's answer, the workers can share the lock resource.
But, It is better to use try-finally
block to ensure the lock will always be released.
# dummy.py
from multiprocessing import Lock
import time
lock = Lock()
def start():
lock.acquire()
try:
# TODO do work
for i in range(0,10):
print "did work %s" % i
time.sleep(1)
finally:
lock.release()