locks = ['compute:lock1', 'compute:lock2']
for key in locks:
    lock = redis.lock(key, blocking_timeout=5)
acquired = lock.acquire()
if acquired:
    do_huge_computation()
lock.release()
break
print('Gonna try next possible slot')
if not acquired:
    raise SystemLimitsReached('Already at max capacity !')
limited number of user-initiated background processes