java定时器每一分钟执行一次(java定时执行问题: 我想让一个Java代码在每小时的第25分钟执行一次的,这个怎么实现)

本文目录
- java定时执行问题: 我想让一个Java代码在每小时的第25分钟执行一次的,这个怎么实现
- 怎样用java做个定时器,每个星期一中午12点整执行doXX这一动作越详细越好.用监听哥跪谢!
- java中如何控制时间间隔
- 怎么在java后台,写个定时任务比如,十分钟执行一次接口
- 怎么用Java实现定时执行某程序
- java定时器 限制方法调用次数
- java中Time和TimeTask的使用
- 如何用java实现一个计时器来定时读取和写入数据库急!
- java计时器一分钟内重复
- java定时任务没十分钟执行一次,成功就不执行了
java定时执行问题: 我想让一个Java代码在每小时的第25分钟执行一次的,这个怎么实现
用spring quartz
public class MyJob{
//这里如果你定义实例变量,可用spring依赖注入,例如
private String job;
public void setJob(String job){
this.job = job;
}
//你要执行的操作
public void execute(){
}
}
spring 配置文件
beans-config.xml
《?xml version="1.0" encoding="UTF-8"?》
***隐藏网址***
***隐藏网址***
***隐藏网址***
***隐藏网址***
《bean id = "myJob" class="MyJob"》
《!--如果有注入属性在这里写 《property name = "job" value="hihi"》《/property》 --》
《/bean》
《bean id = "myjobDetail" class = "org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"》
《property name="targetObject" ref="myJob"》
《/property》
《property name="targetMethod" value="execute"》《/property》
《/bean》
《bean id ="triggerBean" class="org.springframework.scheduling.quartz.CronTriggerBean"》
《property name="jobDetail" ref="myjobDetail"/》
《!-- 秒 分 小时 天 月 年--》
《property name="cronExpression" value="0 25 * * * ?"/》
《/bean》
《bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"》
《property name="triggers"》
《list》《ref bean = "triggerBean"/》《/list》
《/property》
《/bean》
《/beans》
在主类中读取定义文件,任务计划自动运行。
public class Test(){
public void static main(String args){
ApplicationContext context = new ClassPathXmlApplicationContext("beans-config.xml");
}
}
将配置文件放在该项目的classpath下,一般你放在src目录下即可。也可以自己创建路径放置,在项目的.classpath中可配置下此路径。
最后导入spring的jar包就可以了。
怎样用java做个定时器,每个星期一中午12点整执行doXX这一动作越详细越好.用监听哥跪谢!
主类:
package tiwen4; import java.util.Calendar; import java.util.Timer; public class quartz { public static void main(String args) { try{ Calendar cal = Calendar.getInstance();//设置定时时间 cal.add(Calendar.DATE, 0);//表示从今天的12点开始跑起来,如果当前时间超过12点会马上跑一次,否则等12点再跑第一次 cal.set(Calendar.HOUR_OF_DAY, 12);//24小时制的,12就是中午12点 cal.set(Calendar.MINUTE, 0);//分 cal.set(Calendar.SECOND, 0);//秒 Timer processTimer = new Timer(); processTimer.scheduleAtFixedRate(new ProcessClass(), cal.getTime(), 86400000);//86400000是24小时,即24小时跑一次 }catch(Exception e){ e.printStackTrace(); }finally{ } } }
定时器调用的类--我在这里只是输出了一下~你也可以自己加函数:
package tiwen4; import java.util.TimerTask; public class ProcessClass extends TimerTask { @Override public void run() { // TODO Auto-generated method stub System.out.println("输出了哈哈");// } }
我上面用的只是一种方式,其实定时方式有很多的linux和window都有自带的定时器,可以直接调用,也可以用上面所说的quartz包带的框架等等
java中如何控制时间间隔
我们可以使用Timer和TimerTask类在java中实现定时任务,详细说明如下:
1、基础知识
java.util.Timer
一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。此类是线程安全的:多个线程可以共享单个 Timer 对象而无需进行外部同步。
java.util.TimerTask
由 Timer 安排为一次执行或重复执行的任务。
2、示例代码
该示例实现这样一个功能,在系统运行期间,每30分钟,系统自动检查连接池中的可用连接数,并输出到日志中。
首先创建一个需要定时执行的任务类,这个任务类需要继承TimerTask,然后重写run()方法,run()方法体中的代码就是定时需要执行的操作,在本demo中,就是获取连接池中当前可用连接数,并输出到日志中,具体实现代码如下:
public class TaskAvailableConnectNumber extends TimerTask {
private Logger log = Logger.getLogger(TaskAvailableConnectNumber.class);
private ConnectionPool pool=ConnectionPool.getInstance();
@Override
publicvoid run() {
log.debug("当前连接池中可用连接数"+pool.getAvailableConnectNumber());
}
}
下面定义一个监听器,负责在应用服务器启动时打开定时器,监听器需要实现ServletContextListener接口,并重写其中的contextInitialized()和contextDestroyed()方法,代码如下:
public class OnLineListener implements ServletContextListener{
private Logger log = Logger.getLogger(OnLineListener.class);
Timer timer = null;
//在应用服务器启动时,会执行该方法
publicvoid contextInitialized(ServletContextEvent arg0) {
//创建一个定时器,用于安排需要定时执行的任务。
timer = new Timer();
//为定时器安排需要定时执行的任务,该任务就是前面创建的任务类TaskAvailableConnectNumber,并指定该任务每30分钟执行一次。
timer.schedule(new TaskAvailableConnectNumber(), 0, 30*60*1000);
log.debug("启动定时器");
}
//应用服务器关闭时,会执行该方法,完成关闭定时器的操作。
public void contextDestroyed(ServletContextEvent arg0) {
if(timer!=null){
timer.cancel();//关闭定时器
log.debug("-----定时器销毁--------");
}
}
}
监听器要想正常运行,需要在web.xml文件中进行配置,配置信息如下:
《!-- 监听器配置开始 --》
《listener》
《listener-class》
cn.sdfi.listen.OnLineListener
《/listener-class》
《/listener》
《!-- 监听器配置结束 --》
以上步骤完成后,一个简单的定时器就算开发完成了。
怎么在java后台,写个定时任务比如,十分钟执行一次接口
对于这样的操作最方便、高效的实现方式就是使用java.util.Timer工具类。
private java.util.Timer timer;//给你标注一下包,到时候别找错了
timer = new Timer(true);
timer.schedule(
new java.util.TimerTask() { public void run()
{ //你要定时执行的功能} }, 0, 30*1000);
第一个参数是要操作的功能,一般匿名内部类,第二个参数是要设定延迟的时间,第三个参
数是周期的设定,每隔多长时间执行该操作。
更详细的内容,自己找API Timer类看看吧
怎么用Java实现定时执行某程序
java中设置定时任务用Timer类可以实现。
一、延时执行
首先,我们定义一个类,给它取个名字叫TimeTask,我们的定时任务,就在这个类的main函数里执行。代码如下:
package test;
import java.util.Timer;
public class TimeTask {
public static void main(String args){
Timer timer = new Timer();
timer.schedule(new Task(), 60 * 1000);
}
}
解释一下上面的代码。
上面的代码实现了这样一个功能,当TimeTask程序启动以后,过一分钟后执行某项任务。很简单吧:先new一个Timer对象,然后调用它的schedule方法,这个方法有四个重载的方法,这里我们用其中一个,
public void schedule(TimerTask task,long delay)
首先,第一个参数
第一个参数就是我们要执行的任务。
这是一个TimerTask对象,确切点说是一个实现TimerTask的类的对象,因为TimerTask是个抽象类。上面的代码里面,Task就是我们自己定义的实现了TimerTask的类,因为是在同一个包里面,所以没有显性的import进来。Task类的代码如下
package test;
import java.util.TimerTask;
public class Task extends TimerTask {
public void run(){
System.out.println("定时任务执行");
}
}
我们的Task必须实现TimerTask的方法run,要执行的任务就在这个run方法里面,这里,我们只让它往控制台打一行字。
第二个参数
第二个参数是一个long型的值。这是延迟的时间,就是从程序开始以后,再过多少时间来执行定时任务。这个long型的值是毫秒数,所以前面我们的程序里面,过一分钟后执行用的参数值就是 60 * 1000。
二、循环执行
设置定时任务的时候,往往我们需要重复的执行这样任务,每隔一段时间执行一次,而上面的方法是只执行一次的,这样就用到了schedule方法的是另一个重载函数
public void schedule(TimerTask task,long delay,long period)
前两个参数就不用说什么了,最后一个参数就是间隔的时间,又是个long型的毫秒数(看来java里涉及到时间的,跟这个long是脱不了干系了),比如我们希望上面的任务从第一次执行后,每个一分钟执行一次,第三个参数值赋60 * 1000就ok了。
三、指定执行时间
既然号称是定时任务,我们肯定希望由我们来指定任务指定的时间,显然上面的方法就不中用了,因为我们不知道程序什么时间开始运行,就没办法确定需要延时多少。没关系,schedule四个重载的方法还没用完呢。用下面这个就OK了:
public void schedule(TimerTask task,Date time)
比如,我们希望定时任务2006年7月2日0时0分执行,只要给第二个参数传一个时间设置为2006年7月2日0时0分的Date对象就可以了。
有一种情况是,可能我们的程序启动的时候,已经是2006年7月3日了,这样的话,程序一启动,定时任务就开始执行了。
schedule最后一个重载的方法是
public void schedule(TimerTask task,Date firstTime,long period)
java定时器 限制方法调用次数
添加一个静态常量,每当方法被调用,该常量减1,当该常量为0时,调用该方法就直接退出。
java中Time和TimeTask的使用
static int i = 0;
Timer timer = new Timer();
timer.schedule(new MyTask(),1000,30*60*1000);//定义一个定时器,一秒后运行,每隔30分钟运行一次。
public class MyTask extend TimerTask(){
......................................//这是执行的代码
i = i+1;
if(i》=10){
timer.cancel();//关闭定时器
}
}
如何用java实现一个计时器来定时读取和写入数据库急!
Timer time = new Timer(); //定义一个 Timer
//执行方法 里面需要一个类 可以定义一个伪类
//也可以 自己 定义一个类 继承TimerTask这个类
//里面必须实现 run方法
//run方法 里面就写你的 实做 方法
//schedule 方法有很多重载 有很多参数我用最简单的
//给你说明 第2个参数是 说 每隔一定的时间执行一次
//相关说明可以去jdk 帮助文档里面找
time.schedule(new TimerTask() {
public void run() {
int inSertValue{
try{
commection con1=con;
Statement stmt=con1.createStatement();
str="(insert ……)";
……
stmt.close();
} catch() {……}
} } //加到这里就好了!!最好把这样方法封装起来
}
}, 1000);
java计时器一分钟内重复
《html》
《head》
《style》
input{
width:100px;
}
body {
text-align:center;
font-size:12px;
}
《/style》
《script》
function show(obj){
var btn=obj.value;
show2();
if(btn!=’点击开始倒计时’){
clearInterval(s);
}
}
function show2(){
document.getElementById(’btn’).value=60;
s=setInterval(cycle,1000);
}
function cycle(){
if(document.getElementById(’btn’).value《=0){
clearInterval(s);
window.close();
}else{
document.getElementById(’btn’).value-=1;
}
}
《/script》
《/head》
《body 》
《input type="button" name="btn" id="btn" value="点击开始倒计时" onclick="show(this)"》
《br》
《/body》
《/html》
java定时任务没十分钟执行一次,成功就不执行了
题主问的是java定时任务没十分钟执行一次,成功就不执行了是什么原因?是系统故障的问题。
java定时任务没十分钟执行一次,成功就不执行了是系统故障的问题,主要是任务最外面没有用try-catch 捕捉,或者是任务执行时,遇到了Uncaught Exception,导致这个定时任务停止执行了。
java是一种计算机编程语言,拥有跨平台,面向对象,泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发,任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言。

更多文章:
abap开发工作经历(目前,从事的是ABAP开发的不知道做这个有没有什么前途啊好的话,我会加分的~)
2026年10月10日 01:10
mysql最佳优化完美攻略下载(MySQL数据库性能优化有哪些技巧)
2026年10月9日 22:10
java经典编程50题(Java程序设计 求50以内的奇数之和,以及50以内的素数)
2026年10月9日 18:00








