Simple locking mechanism for Python 2.7 GAE, using memcache
Import the UUIDLock class in any app engine module
from memcache_lock import UUIDLock Acquire the lock
lock_helper = UUIDLock(key='lock_key') lock_helper.lock() Release the lock
lock_helper.release() Send default_timeout in secs to change the time after with the lock will be released automatically
lock_helper = UUIDLock(key='lock_key', default_timeout=3600) NOTE: default value for timeout is 24 hours
Send force_lock as True to acquire lock even if some other application already has lock on the key
lock_helper = UUIDLock(key='lock_key', force_lock=True) NOTE: default value for force_lock is False
Send max_wait_time in secs to raise Exception if lock is not acquired after waiting for max_wait_time
lock_helper = UUIDLock(key='lock_key', max_wait_time=120) NOTE: default value for max_wait_time is 60 secs