docs: private void sendRequest() throws RemotingCommandFieldCheckException {
          int availableThreads = appContext.getRunnerPool().getAvailablePoolSize();
          if (LOGGER.isDebugEnabled()) {
              LOGGER.debug("current availableThreads:{}", availableThreads);
          }
          if (availableThreads == 0) {
              return;
          }
          JobPullRequest requestBody = appContext.getCommandBodyWrapper().wrapper(new JobPullRequest());
          requestBody.setAvailableThreads(availableThreads);
          RemotingCommand request = RemotingCommand.createRequestCommand(JobProtos.RequestCode.JOB_PULL.code(), requestBody);
  
          try {
              RemotingCommand responseCommand = appContext.getRemotingClient().invokeSync(request);
              if (responseCommand == null) {
                  LOGGER.warn("Job pull request failed! response command is null!");
                  return;
              }
              if (JobProtos.ResponseCode.JOB_PULL_SUCCESS.code() == responseCommand.getCode()) {
                  if (LOGGER.isDebugEnabled()) {
                      LOGGER.debug("Job pull request success!");
                  }
                  return;
              }
              LOGGER.warn("Job pull request failed! response command is null!");
          } catch (JobTrackerNotFoundException e) {
              LOGGER.warn("no job tracker available!");
          }
      }