code: public void start(CockroachQueue queue) throws Exception {
          this.thread = config.getThread();
          TaskResponseFilterBox filterBox = this.bulidResponseFilters();
          this.executerListeners.forEach(IExecutersListener::onStart);
          for (int i = 0; i < thread; i++) {
              TaskExecuter executer = new TaskExecuter(
                      queue,
                      this.bulidHttpClient(),
                      this.config.getStore().newInstance(),
                      new TaskErrorHandlerBox().add(this.config.getTaskErrorHandler().newInstance()),
                      this.config.getThreadSleep(),
                      this.config.isAutoClose(),
                      filterBox
              );
              logger.info("new thread:" + executer.getId());
              service.execute(executer);
              executerList.add(executer);
          }
          /**
           * 不可以再继续 提交新的任务 已经提交的任务不影响
           */
          service.shutdown();
  
          /**
           * 每 5 秒检测是否全部线程执行完毕
           */
          new Thread(() -> {
              try {
                  while (true) {
                      TimeUnit.SECONDS.sleep(5);
                      if (service.isTerminated()) {
                          logger.info("任务已经全部执行完毕");
                          this.executerListeners.forEach(IExecutersListener::onEnd);
                          break;
                      }
                  }
              } catch (InterruptedException e) {
                  e.printStackTrace();
              }
          }).start();
      }
docs: 发车
  @param queue
  @throws Exception