def push_account_task(obj_id):
    """
    Async: push_account_task.delay(Account.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()