int numberOfMillisecondsInTheFuture = 10000; // 10 sec Date timeToRun = new Date(System.currentTimeMillis()+numberOfMillisecondsInTheFuture); Timer timer = new Timer();
timer.schedule(new TimerTask() { public void run() { // Task here ... } }, timeToRun);
懒得分了,把三个java文件放一起了,Quartz用起来很方便package quartz;public class MyTask {
public void task(){ System.out.println("This is my task!"); }}package quartz;import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; public class MyTaskJob implements Job {
Date timeToRun = new Date(System.currentTimeMillis()+numberOfMillisecondsInTheFuture);
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
// Task here ...
}
}, timeToRun);
2: 多个socket请求发到server,server端会依次处理,虽然同时到,但是还是有先后的,一般server开发的时候都会考虑到多线程的,来了一个之后自动开启一个线程来处理,然后接着处理后面的请求。
然后这个new MyTask()就是你想要完成的任务
机器每天07:00启动一次,如果启动时让Timer运行起来,我想让它在12:30时执行任务,int numberOfMillisecondsInTheFuture 这个变量那么大,不会影响效率吗???
建一个WEB项目,在web.xml中配置一个listener,这个listener的class就是那个用timer实现定时操作的类。当Tomcat启动的时候会自动执行的。
public void task(){
System.out.println("This is my task!");
}}package quartz;import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class MyTaskJob implements Job {
public void execute (JobExecutionContext context) throws JobExecutionException{ MyTask mytask=new MyTask();
mytask.task();
}}package quartz;import java.util.Date;import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleTrigger;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;public class MyTaskJobUsage { /**
* @param args
* @throws SchedulerException
*/
public static void main(String[] args) throws Exception {
Scheduler scheduler =new StdSchedulerFactory().getScheduler();
scheduler.start();
//按时间间隔执行任务
JobDetail jobdetail = new JobDetail("myTaskJob",Scheduler.DEFAULT_GROUP,MyTaskJob.class);
Trigger trigger = new SimpleTrigger("simpleTrigger",Scheduler.DEFAULT_GROUP,new Date(),null,SimpleTrigger.REPEAT_INDEFINITELY,3000);
scheduler.scheduleJob(jobdetail, trigger);
//定时执行任务
/* JobDetail jobdetail1= new JobDetail("myTaskJob",Scheduler.DEFAULT_GROUP,MyTaskJob.class);
String cronExp="10 1,32 18 * * ?";
Trigger trigger1 = new CronTrigger("cronTrigger",Scheduler.DEFAULT_GROUP,cronExp);
scheduler.scheduleJob(jobdetail1, trigger1);*/
}}