導航:首頁 > 編程語言 > java定時執行一次

java定時執行一次

發布時間:2023-01-30 18:26:35

1. 如何讓java定時執行一個方法

你可以通過 spring的定時器來實現該功能, 給你一個例子吧.
Timer.xml 配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<!-- <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> -->
<beans default-autowire="byName" default-lazy-init="true">
<bean id="zntask" class="com.soft.util.quartzTask"></bean> <!—實現定時功能的類-- >

<bean id="ZntaskTopSaleJobDetail"
class="org.springframework.scheling.quartz.">
<property name="targetObject" ref="zntask"></property>
<!—quartzTask 定時調用的方法 znrwdb -- >
<property name="targetMethod" value="znrwdb"></property>
</bean>

<bean id="zntaskTrigger" class="org.springframework.scheling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="ZntaskTopSaleJobDetail"/>
</property>
<property name="cronExpression">
<value>0 0 0 12 * * ?</value> <!-- 每隔12小時 執行一次 -->
</property>
</bean>

<bean class="org.springframework.scheling.quartz.SchelerFactoryBean">
<property name="triggers">
<list>
<ref bean="zntaskTrigger"/>
</list>
</property>
</bean>
</beans>
最後將 timer.xml 引入spring的applicationContext.xml文件即可,啟動伺服器時會自動載入執行定時方法 znrwdb
Eg:
applicationContext.xml 中:
<!-- 引入定時器 -->
<import resource=" timer.xml」 />

2. 如何讓java定時執行一個方法

現在能想到的是三種方法能實現:
1、普通thread實現
:是最常見的,創建一個thread,然後讓它在while循環里一直運行著,通過sleep方法來達到定時任務的效果。
2、timertask
:啟動和去取消任務時可以控制,第一次執行任務時可以指定你想要的delay時間。
3、scheledexecutorservice實現
:最理想的定時任務實現方式,相比於timer的單線程,它是通過線程池的方式來執行任務的,可以很靈活的去設定第一次執行任務delay時間,提供了良好的約定,以便設定執行的時間間隔等。
希望能幫到你。

3. 我有一個java程序的jar包,如何在.bat文件中定時循環定時執行,比如說定時五分鍾執行一次

在jar文件里的main方法執行定時器,也就是Timer,設置五分鍾執行一次,把要執行的代碼方到Timer的方法里

4. 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.scheleAtFixedRate(task, startTime, daySpan);

5. java定時器 每天凌晨 固定執行一個方法

二、如果是需要Tomcat啟動就能執行,不需要main方法的定時器的話:
web.xml裡面需要這么配置:

<listener>
<listener-class>
com.InitListener
</listener-class>
</listener>
第一個類:InitListener

package com.listener;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

/**
* 系統啟動時的監聽類 初始化系統數據
*
* @author jhoneder
*
*/
public class InitListener implements ServletContextListener {
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
// context銷毀時,銷毀初始化數據
}
public void contextInitialized(ServletContextEvent event) {
// TODO Auto-generated method stub
try {
goTimmer();
} catch (Exception e) {
System.out.println("失敗:" + e.getMessage());
}
}
private void goTimer() {
Timer timmerTask = new Timer();
Calendar calEnviron = Calendar.getInstance();
// 每天的02:00.am開始執行
calEnviron.set(Calendar.HOUR_OF_DAY, 2);
calEnviron.set(Calendar.MINUTE, 00);
// date為制定時間
Date dateSetter = new Date();
dateSetter = calEnviron.getTime();
// nowDate為當前時間
Date nowDateSetter = new Date();
// 所得時間差為,距現在待觸發時間的間隔
long intervalEnviron = dateSetter.getTime() - nowDateSetter.getTime();
if (intervalEnviron < 0) {
calEnviron.add(Calendar.DAY_OF_MONTH, 1);
dateSetter = calEnviron.getTime();
intervalEnviron = dateSetter.getTime() - nowDateSetter.getTime();
}
// 每24小時執行一次
timmerTask.schele(new UseTimer(timmerTask), intervalEnviron, 1 * 1000 * 60 * 60 * 24);
}
}

第二個類:

package com.listener;
import java.util.Timer;
import java.util.TimerTask;
/**
* 被調用執行類
*
* @author Administrator
*
*/
public class UseTimer extends TimerTask {
Timer timer = new Timer();
public UseTimer(Timer timer) {
this.timer = timer;
}
/*
* 被調用具體的方法
*/
public void run() {
System.out.println("開始具體執行!");
}
}

不懂得話可以追問!

6. 怎麼在java後台,寫個定時任務。比如,十分鍾執行一次介面。

對於這樣的操作最方便、高效的實現方式就是使用java.util.Timer工具類。
private java.util.Timer timer;//給你標注一下包,到時候別找錯了
timer = new Timer(true);
timer.schele(
new java.util.TimerTask() { public void run()
{ //你要定時執行的功能} }, 0, 30*1000);
第一個參數是要操作的功能,一般匿名內部類,第二個參數是要設定延遲的時間,第三個參
數是周期的設定,每隔多長時間執行該操作。
更詳細的內容,自己找API Timer類看看吧

7. java定時器 每天12點 固定執行一個方法

可以使用timer的schele方法實現定時任務,例如:把下面的new Date()參數換為你要定時的時間,創建一個線程執行你的任務

public class 定時 {

public static void main(String[] args) {
Timer timer = new Timer();
timer.schele(new myTest(), new Date());
}
}

class myTest extends TimerTask {

@Override
public void run() {
//你要執行的任務
}
System.out.println(hour + ":" + fen + ":" + sec + ":" + i);

}

修改一下就可以了

閱讀全文

與java定時執行一次相關的資料

熱點內容
鋁膜構造柱要設置加密區嗎 瀏覽:340
考駕照怎麼找伺服器 瀏覽:882
阿里雲伺服器如何更換地區 瀏覽:970
手機app調音器怎麼調古箏 瀏覽:501
銳起無盤系統在伺服器上需要設置什麼嗎 瀏覽:17
紅旗計程車app怎麼應聘 瀏覽:978
如何編寫linux程序 瀏覽:870
吉利車解壓 瀏覽:248
java輸入流字元串 瀏覽:341
安卓軟體沒網怎麼回事 瀏覽:785
dvd壓縮碟怎麼導出電腦 瀏覽:274
冒險島什麼伺服器好玩 瀏覽:541
如何在伺服器上做性能測試 瀏覽:793
命令序列錯 瀏覽:259
javaif的條件表達式 瀏覽:576
手機app上傳的照片怎麼找 瀏覽:531
雲伺服器面臨哪些威脅 瀏覽:748
c語言各種編譯特點 瀏覽:177
路由器多種加密方法 瀏覽:604
程序員阻止電腦自動彈出定位 瀏覽:169