定时任务处理(一)

近期有学习Java 的定时任务处理,网上也有类似的文章,这里只是记录自己的学习经过。

首先是使用Java自带的Timer控件进行处理,本人其实也是通过其他人的案例进行学习,在文章的最后,都有参考的URL出处,如有错误,欢迎指正。



这个是使用Java 的TimerTask 进行定时任务的运行,这个比较简单。

步骤1. 创建一个类,继承TimerTask,重写Run方法:

import java.util.TimerTask;

public class TaskSheduleTimer extends TimerTask{
@Override   
    public void run() {   
System.out.println("TaskSheduleTimer run:" + new Date());   
    }
}


步骤2. 在main方法中调用:

public static void main(String[] args) {
Timer timer = new Timer();
        timer.schedule(new TaskSheduleTimer(), 2*1000); // 2秒运行一次
        //timer.scheduleAtFixedRate(new TaskSheduleTimer(), 2, 2*1000);  // 每隔2秒运行一次
}

可以通过参数来控制间隔调用的时间。

步骤3. 如果需要在制定的时间运行,需增加Calendar 对象处理,(此部分没有实现过,转自资料2)

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 1);
calendar.set(Calendar.SECOND, 0);
Date time = calendar.getTime();
timer = new Timer();
timer.schedule(new RemindTask(), time);

此案例没有使用任何的配置文件实现任务的调度,但是限制也是比较大,在实际应用中,一般还是通过配置文件进行处理,这里只是记录一下自己的学习轨迹。

Timer 的优点在于简单易用,但由于所有任务都是由同一个线程来调度,因此所有任务都是串行执行的,同一时间只能有一个任务在执行,前一个任务的延迟或异常都将会影响到之后的任务。

本文参考了以下资料:

1. http://blog.csdn.net/qingzhizhu888/article/details/4500922 。讲述了两种主流的定时任务方式。

2. http://blog.csdn.net/ahxu/article/details/249610 这个比较全,讲解也比较全面。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值