Java调度|使用ScheduledExecutorService实现定时调度

在Java项目Web开发过程中,定时任务会在很多系统中都会用到,我们经常用到的会有最简单的Task、线程池ScheduledExecutorService、基于Spring的quartz表达式调度方式。

下面主要是通过ScheduledExecutorService进行调度的示例:
延长1秒(1000毫秒),每5秒钟执行一次。

package com.fengchen.task;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class DemoTask {
     
	
	
	public void runTask()
	{
     
		Runnable runnable = new Runnable() {
     
			
			public void run() {
     
				//这里是需要实现的功能
				System.out.println("调度:" + getCurrentTime());
			}
		};
		
		ScheduledExecutorService ses = Executors.newSingleThreadScheduledExecutor();
		
		//启动后延迟initDelay毫秒,一般在web开发启动时为了防止加载未完成进行延迟加载
		long initDelay = 1000;
		//间隔时间
		long intervalTime = 5*1000;
		//TimeUnit是时间单位,从 天.....毫秒 都可以
		//进行调度
		ses.scheduleAtFixedRate(runnable, initDelay, intervalTime,
				TimeUnit.MILLISECONDS);
	}
	
	private String getCurrentTime()
	{
     
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
		return sdf.format(new Date());
	}
	
	public static void main(String[] args) {
     
		DemoTask task = new DemoTask();
		task.runTask();
	}
}

推荐下大飞做的一个Java技术类公众号“Java实战宝典”,主要是收集一些日常工作中常用的工具类,一些实战项目的教学及一些疑难问题整理。
Java调度|使用ScheduledExecutorService实现定时调度_第1张图片
一个干货满满的公众号,后面会增加越来越多的实例教程。

你可能感兴趣的:(Java示例,java)