java定时任务使用多线程webservcie执行了两次这是为啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java定时任务使用多线程webservcie执行了两次这是为啥?相关的知识,希望对你有一定的参考价值。
求各位大神指导下……
红色框框是一个定时任务执行的次数。定时任务刚开始执行的时候是正常的,但是执行到规定时间的时候就好像是重新初始化了一下这类。同事有两个类的定时任务在执行!
在本地不会出现在这种情况,只有在linux服务器的时候
追答本地跑和服务器跑肯定是会有不同的啊, 本地只有你一个人在用, 服务器上可能有多人用, 你测过这个吗?
追问本地服务器和linux服务器都是我一个人用的 问题已经解决了
Java多线程学习——任务定时调度
Timer
本身就是一个线程,最主要的方法就是schedule()。
schedule()的参数介绍:
schedule(TimerTask task, long delay) //延迟delay毫秒以后执行任务
schedule(TimerTask task, long delay, long period)
//延迟delay毫秒以后执行任务,并且每隔peroid循环执行下去
schedule(TimerTask task, Date time)
//在指定的日期time开始执行任务
schedule(TimerTask task, Date firstTime, long period)
//在指定的日期time开始执行任务,,并且每隔peroid循环执行下去
TimerTask
抽象类,实现了Runnale接口,继承它要实现run方法,run方法里面是任务的内容。
import java.util.Calendar; import java.util.GregorianCalendar; import java.util.Timer; import java.util.TimerTask; public class TimerTest public static void main(String[] args) Timer task = new Timer(); Calendar startTask = new GregorianCalendar(); //创建日历类 startTask.add(Calendar.SECOND,10); //获取当前时间点的秒数,然后在此基础上增加10秒 task.schedule(new MyTask(),startTask.getTime(),1000); //任务会在当前时间点后的10秒后开始执行 class MyTask extends TimerTask @Override public void run() System.out.println("Hello,World");
有关Date/Calendar等日期类的介绍看:https://www.cnblogs.com/chiweiming/p/11178814.html
以上是关于java定时任务使用多线程webservcie执行了两次这是为啥?的主要内容,如果未能解决你的问题,请参考以下文章