All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.xiaomi.infra.galaxy.emq.client.RetryUtils Maven / Gradle / Ivy

The newest version!
package com.xiaomi.infra.galaxy.emq.client;

import com.xiaomi.infra.galaxy.emq.thrift.CommonConstants;
import com.xiaomi.infra.galaxy.emq.thrift.ErrorCode;
import com.xiaomi.infra.galaxy.emq.thrift.GalaxyEmqServiceException;
import com.xiaomi.infra.galaxy.emq.thrift.RetryType;

/**
 * Copyright 2015, Xiaomi.
 * All rights reserved.
 * Author: [email protected]
 */

public class RetryUtils {
  public static ErrorCode getErrorCode(Throwable cause) {
    ErrorCode code = ErrorCode.UNKNOWN;
    if (cause instanceof GalaxyEmqServiceException) {
      GalaxyEmqServiceException se = (GalaxyEmqServiceException) cause;
      code = ErrorCode.findByValue(se.getErrorCode());
    }
    return code;
  }

  public static RetryType getRetryType(ErrorCode code, String method) {
    RetryType getRetryType = CommonConstants.ERROR_RETRY_TYPE.get(code);
    if(getRetryType != null && getRetryType.equals(RetryType.UNSURE)){
      if(method.startsWith("delete") || method.startsWith("change")){
        return RetryType.SAFE;
      }else{
        return RetryType.UNSAFE;
      }
    }
    return getRetryType;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy