content: package com.xiliu.server.manager;
  
  
  
  import com.xiliu.common.utils.SpringUtils;
  import com.xiliu.common.utils.ThreadsUtils;
  
  import java.util.TimerTask;
  import java.util.concurrent.ScheduledExecutorService;
  import java.util.concurrent.TimeUnit;
  
  /**
   * @author xiliu
   * @description 异步任务管理器
   * @date 2022/7/25
   */
  public class AsyncManager {
  
      /**
       * 操作延迟10毫秒
       */
      private final int OPERATE_DELAY_TIME = 10;
  
      /**
       * 异步操作任务调度线程池
       */
      private ScheduledExecutorService executor = SpringUtils.getBean("scheduledExecutorService");
  
      /**
       * 单例模式
       */
      private AsyncManager(){}
  
      private static AsyncManager me = new AsyncManager();
  
      public static AsyncManager me() {
          return me;
      }
  
      /**
       * 执行任务
       * @param task 任务
       */
      public void execute(TimerTask task) {
          executor.schedule(task, OPERATE_DELAY_TIME, TimeUnit.MILLISECONDS);
      }
      /**
       * 停止任务线程池
       */
      public void shutdown() {
          ThreadsUtils.shutdownAndAwaitTermination(executor);
      }
  }
  