code: def push_account_task(obj_id):
      
      lock_id = "%s-push-account-%s" % (settings.ENV_PREFIX, obj_id)
      acquire_lock = lambda: cache.add(lock_id, "true", LOCK_EXPIRE)  # noqa: E731
      release_lock = lambda: cache.delete(lock_id)  # noqa: E731
      if acquire_lock():
          UserModel = get_user_model()
          try:
              upload_intercom_user(obj_id)
          except UserModel.DoesNotExist:
              #  seems like account was removed before it was pushed
              release_lock()
  
          release_lock()
docs: Async: push_account_task.delay(Account.id)