package com.iplatform.base;
|
|
import com.iplatform.core.BeanContextAware;
|
import com.iplatform.core.util.ThreadUtils;
|
|
import java.util.TimerTask;
|
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.TimeUnit;
|
|
/**
|
* 异步任务管理器
|
*
|
* @author Mike
|
* @date 2023-01-05
|
*/
|
public class AsyncManager
|
{
|
/**
|
* 操作延迟10毫秒
|
*/
|
private final int OPERATE_DELAY_TIME = 10;
|
|
/**
|
* 异步操作任务调度线程池
|
*/
|
private ScheduledExecutorService executor = (ScheduledExecutorService)BeanContextAware.getBeanByName("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);
|
}
|
|
/**
|
* 执行一个异步任务
|
* @param task 任务定义
|
* @param millSeconds 延时执行(毫秒)
|
* @date 2023-08-17
|
*/
|
public void execute(TimerTask task, long millSeconds){
|
executor.schedule(task, millSeconds, TimeUnit.MILLISECONDS);
|
}
|
|
/**
|
* 停止任务线程池
|
*/
|
public void shutdown()
|
{
|
ThreadUtils.shutdownAndAwaitTermination(executor);
|
}
|
}
|