电脑上按Ctrl + D,下次访问更方便
服务分类

Java ScheduledThreadPoolExecutor延迟执行任务

Java的ScheduledThreadPoolExecutor类实现了ScheduledExecutorService接口中定义的以不同方法执行任务的方法。

应用场景:在做数据统计、记录日志等操作的时候,如果项目没有使用消息队列,可以使用延迟执行任务。例子如下:
import java.util.TimerTask;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

/**
 * 异步任务
 */
public class TaskManager {
    /**
     * 操作延时
     */
    private final int OPERATE_DELAY_TIME = 10;

    /**
     * 异步操作线程池
     */
    private ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(10);

    private TaskManager() {
    }

    public static TaskManager taskManager = new TaskManager();

    public static TaskManager me() {
        return taskManager;
    }

    public void executeLog(TimerTask task) {
        executor.schedule(task, OPERATE_DELAY_TIME, TimeUnit.MILLISECONDS);
    }
}

接下来:

import java.util.concurrent.TimeUnit;

/**
 * 任务创建工厂
 *
 */
public class TaskFactory {

    public static TimerTask myTask() {
        return new TimerTask() {
            @Override
            public void run() {
                // 在这里写延时任务的代码
            }
        };
    }

}

调用方法:

TaskManager.me().executeLog(TaskFactory.myTask());

发表回复

登录后才能评论
联系我们

联系我们

微信客服:

fuwu360微信客服

工作时间:周一至周五,9:30-18:30,节假日休息

返回顶部