「java时间任务随机执行」java定时器 每小时执行一次

博主:adminadmin 2022-11-28 15:56:08 54

今天给各位分享java时间任务随机执行的知识,其中也会对java定时器 每小时执行一次进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java如何根据用户设定的时间进行定时任务

给你一个案例

1.MyJob02

//首先我们需要定义一个任务类,比如为MyJob02 ,

//该类需要继承Job类,然后添加execute(JobExecutionContext context)方法,在

//这个方法中就是我们具体的任务执行的地方。

//由希望由调度程序执行的组件实现的接口

public class MyJob02 implements Job {

@Override

public void execute(JobExecutionContext context) throws JobExecutionException {

// TODO Auto-generated method stub

// 执行响应的任务.

System.out.println("HelloJob.execute,"+new Date());

}

2.

public static void main(String[] args) throws Exception {

//SchedulerFactory 是一个接口,用于Scheduler的创建和管理

SchedulerFactory factory = new StdSchedulerFactory();

//从工厂里面拿到一个scheduler实例

//计划表(可能翻译的不太贴切),现在我们有了要做的内容,

//与调度程序交互的主要API

/*

* Scheduler的生命期,从SchedulerFactory创建它时开始,

到Scheduler调用shutdown()方法时结束;Scheduler被创建后,

可以增加、删除和列举Job和Trigger,以及执行其它与调度相关的操作

(如暂停Trigger)。但是,Scheduler只有在调用start()方法后,

才会真正地触发trigger(即执行job)

*/

Scheduler scheduler = factory.getScheduler();

//具体任务.

//用于定义作业的实例

//JobBuilder - 用于定义/构建JobDetail实例,用于定义作业的实例。

JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("job1", "group1").build();

//Trigger(即触发器) - 定义执行给定作业的计划的组件

//TriggerBuilder - 用于定义/构建触发器实例

CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")

.withSchedule(CronScheduleBuilder.cronSchedule("0/1 * * * * ?")).build();

scheduler.scheduleJob(job, trigger);

scheduler.start();

}

Java 怎么在指定的时间内执行某一任务

可以通过死循环的方式来进行实现:第一步就是获取到当前的时间,之后和需要执行的时间进行比较,找出时间差,先让线程停止,之后到时见开始执行死循环,执行完成之后再设置线程等待时间,之后重复执行即可,代码举例如下:

Date date = new Date();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

String str = sdf.format(date);

//此处实现更改为其余的时间

Thread.sleep(睡觉的时间);

for(;;){

//执行某一个方法

//此处实现更改为其余的时间

Thread.sleep(睡觉的时间);

}

备注:上面的部分代码已经有说明,直接根据说明实现即可。这个只是一种简单的实现思路,通常复杂的都需要quazter来实现。

java怎么根据用户设定的时间执行定时任务

// 一天的毫秒数

long daySpan = 24 * 60 * 60 * 1000;

// 规定的每天时间15:33:30运行

final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd '15:33:30'");

// 首次运行时间

Date startTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(sdf.format(new Date()));

// 如果今天的已经过了 首次运行时间就改为明天

if(System.currentTimeMillis() startTime.getTime())

startTime = new Date(startTime.getTime() + daySpan);

Timer t = new Timer();

TimerTask task = new TimerTask(){

@Override

public void run() {

// 要执行的代码

System.err.println("xxxxxxxxx");

}

};

// 以每24小时执行一次

t.scheduleAtFixedRate(task, startTime, daySpan);

java 如何设定时间执行程序

用Timer可以实现~~

Timer的schedule方法可以指定第一次运行的时刻,和重复间隔

具体可以参考API

timer.schedule(task, firstTime, period)

指定firstTime为21:00:00,period为一天的毫秒数24*3600*1000就成了。。

或者可以自己写个线程,放个while循环,每分钟检查一次,如果到时间了就执行任务,如果没到就sleep一分钟。。当然,这种方法比较土。。

更复杂点的可以借助现有的包,比如quartz,有兴趣可以研究下~~

java timer类实现随机时间调用方法

//一秒后开始执行,每五秒内随机执行一次.

import java.util.Random;

import java.util.Timer;

import java.util.TimerTask;

import java.util.Date;

public class test1{

public static void main(String[] args) throws Exception{

Timer time=new Timer();

time.schedule(new tast(),1000,5000);

}

}

class tast extends TimerTask{

public void run(){

Date date=new Date();

System.out.println("I'm start!"+date.toString());

Random random=new Random();

try{

Thread.sleep(random.nextInt(5000));

}catch(Exception e){

e.printStackTrace();

}

date=new Date();

System.out.println("I'm execute!"+date.toString());

}

}

关于java时间任务随机执行和java定时器 每小时执行一次的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-28,除非注明,否则均为首码项目网原创文章,转载请注明出处。