code: public static <Return> Return retryUntilNoException(Callable<Return> callable, int maxTry, Class<? extends Throwable> exceptionClass) throws Exception {
          String errMsg = "连续重试失败" + maxTry + "次。";
          Exception t = null;
          while (maxTry > 0) {
              try {
                  return callable.call();
              } catch (Exception throwable) {
                  if (exceptionClass.isAssignableFrom(throwable.getClass())) {
                      //只对指定的异常重试，其他异常直接抛出去
                      maxTry--;
                      t = throwable;
                  } else {
                      throw throwable;
                  }
              }
          }
          LOG.error(new RuntimeException(errMsg, t));
          //这里是对重试N次后依然抛出指定异常的情况，原样抛出
          throw t;
      }
docs: 重试直到无异常抛出或者超过最大重试次数；
  原样抛出原异常
  
  @deprecated Do not support asynchronous task