def func_wrapper(request, *args, **kwargs): key = location_lock_key(request.domain) client = get_redis_client() lock = client.lock(key, timeout=LOCK_LOCATIONS_TIMEOUT) if lock.acquire(blocking=False): try: return func(request, *args, **kwargs) finally: release_lock(lock, True) else: message = _("Some of the location edits are still in progress, " "please wait until they finish and then try again") messages.warning(request, message) if request.method == 'DELETE': # handle delete_location view return json_response({'success': False, 'message': message}) else: return HttpResponseRedirect(request.META['HTTP_REFERER'])
def func_wrapper(request, *args, **kwargs): key = location_lock_key(request.domain) client = get_redis_client() lock = client.lock(key, LOCK_LOCATIONS_TIMEOUT) if lock.acquire(blocking=False): try: return func(request, *args, **kwargs) finally: release_lock(lock, True) else: message = _("Some of the location edits are still in progress, " "please wait until they finish and then try again") messages.warning(request, message) if request.method == 'DELETE': # handle delete_location view return json_response({'success': False, 'message': message}) else: return HttpResponseRedirect(request.META['HTTP_REFERER'])