導航:首頁 > 編程語言 > java定時器每天執行

java定時器每天執行

發布時間:2023-04-05 18:42:12

java定時任務每天多個時間點怎麼辦

1、創建ScheledExecutorService對象,用於執行定時任務。
2、使用scheleAtFixedRate()方法來設置定時任務,該方法可以指定任務的初始舉斗延遲時間、任務運行周期等參數。
3、在定時任務的run()方法中編寫任務代碼,實現需要執行的業務邏輯。
4、在程序啟動時,調用鋒或ScheledExecutorService對象的shutdown()方法來關閉定時任務。正基磨

② java怎樣做定時器每天一點發送一條簡訊到的需求

如果想用框架的話推薦「Spring Schele定時任務」。

如果想自己簡單的實現的汪洞話可以使用java的Timer類和TimerTask類,它們配合可以每隔指定時間執行一次對應的Task,比較簡單,參考這篇博客,run函數中放你的發送消岩簡訊的代碼拿陵御就行了。

③ 求高手指點一二,我需要用java編寫一個定時器,每天8點開始執行,每一個小時執行一次,過了晚上12點停止

ScheledExecutorServiceservice=Executors.();
service.scheleAtFixedRate(newTimerTask(){
@Override
publicvoidrun(){
if(當前時間>8點){
dowork();//你要做的事
}
if(當前時間>12點){
this.cancel();
}
}
},0,1,TimeUnit.HOURS);

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

可以通過以下方式實現,

public class TimerManager {
//時間間隔
private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;
public TimerManager() {
Calendar calendar = Calendar.getInstance();
/*** 定製每日:00執行方法 ***/
calendar.set(Calendar.HOUR_OF_DAY, 2);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);

Date date=calendar.getTime(); //第一次執行定時任務的時間

//如果第一次執行定時任務的時間 小於 當前的時間
//此時要在 第一次執行定時任務的時間 加一天,以便此任務在下個時間點執行。如果不加一天,任務會立即執行。
if (date.before(new Date())) {
date = this.addDay(date, 1);
}

Timer timer = new Timer();

NFDFlightDataTimerTask task = new NFDFlightDataTimerTask();
//安排指定的任務在指定的時間開始進行重復的固定延遲執行。
timer.schele(task,date,PERIOD_DAY);
}

// 增加或減少天數
public Date addDay(Date date, int num) {
Calendar startDT = Calendar.getInstance();
startDT.setTime(date);
startDT.add(Calendar.DAY_OF_MONTH, num);
return startDT.getTime();
}

}

public class NFDFlightDataTimerTask extends TimerTask {

private static Logger log = Logger.getLogger(NFDFlightDataTimerTask.class);

@Override
public void run() {
try {
//在這里寫你要執行的內容

} catch (Exception e) {
log.info("-------------解析信息發生異常--------------");
}
}
}

public class NFDFlightDataTaskListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent event) {
new TimerManager();
}
public void contextDestroyed(ServletContextEvent event) {
}

}

然後要在web.xml裡面配置監聽器
<listener>
<listener-class>
com.listener.NFDFlightDataTaskListener
</listener-class>
</listener>

⑤ java代碼:如何定時執行任務,例如每天的12點整執行System.out.println("now");

如果你是在項目中使用,用quartz,如何使用自己搜索。
如果你只是做測試,可版用線程。
public class Test implements Runable{
public void run() throws Exception{
while(true){
long time = System.currentTime().getTime();
if(判斷time是否是12:00){
System.out.println("");

}

sleep(1000); // 暫時權1秒.

}
}
}

//main方法中
Thread t = new Thread(new Test());
t.start();

⑥ Java 定時器,每天凌晨自動執行一個方法,用哪個好

用選擇間隔時長的那款!

⑦ java timer 定時器 想要實現 每天的 偶數點 的40 執行 方法 該怎麼實現

這個不難, 在timer 中獲得當前的時間,判斷小時數 和分鍾數
if(小洞顫時%2==0){
if(分鍾==40){
執行代碼
}
}
另外 timer 最好60秒執行一次, 不然在40分的時候 可能返消會執行多次漏顫知代碼,當然自己做判斷也可以。望採納

⑧ JAVA定時執行任務,每天定時幾點鍾執行任務

案例: 你想讓他幾點執行都ok

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 {
//SchelerFactory 是一個介面,用於Scheler的創建和管理
SchelerFactory factory = new StdSchelerFactory();
//從工廠裡面拿到一個scheler實例
//計劃表(可能翻譯的不太貼切),現在我們有了要做的內容,
//與調度程序交互的主要API
/*
* Scheler的生命期,從SchelerFactory創建它時開始,
到Scheler調用shutdown()方法時結束;Scheler被創建後,
可以增加、刪除和列舉Job和Trigger,以及執行其它與調度相關的操作
(如暫停Trigger)。但是,Scheler只有在調用start()方法後,
才會真正地觸發trigger(即執行job)
*/
Scheler scheler = factory.getScheler();
//具體任務.
//用於定義作業的實例
//JobBuilder - 用於定義/構建JobDetail實例,用於定義作業的實例。
JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("job1", "group1").build();

//Trigger(即觸發器) - 定義執行給定作業的計劃的組件
//TriggerBuilder - 用於定義/構建觸發器實例
CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")
.withSchele(CronScheleBuilder.cronSchele("0/1 * * * * ?")).build();
scheler.scheleJob(job, trigger);
scheler.start();

}

⑨ Java定時器

好多朋友用過Windows的任務計劃 也有不少程序迷自己曾寫過時鍾報警 系統自動關機等趣味程散槐序 可卻很少有朋友在Web工程中實現過類似功能

當Web工程啟動時 定時器能自動開始計時 在整個Web工程的生命期里 定時器能在每晚深夜觸發一次任務 因此定時器的存放位置也值得考查 不能簡單的存在於單個Servlet或JavaBean中 必須能讓定時器宿主的存活期為整個Web工程生命期 在工程啟動時能自動載入運行 結合這兩點 跟 Servlet上下文有關的偵聽器就最合適不過了 通過在工程的配置文件中加以合理配置 會在工程啟動時自動運行 並在整個工程生命期中處於監聽狀態

下面就Servlet偵聽器結合Java定時器來講述整個實現過程 要運用Servlet偵鍵冊聽器需要實現 javax servlet ServletContextListener介面 同時實現它的contextInitialized (ServletContextEvent event)和contextDestroyed(ServletContextEvent event)兩個介面函數 考慮定時器有個建立和銷毀的過程 看了前面兩個介面函數 就不容置疑的把建立的過程置入 contextInitialized 把銷毀的過程置入contextDestroyed了

我把ServletContextListener的實現類取名為ContextListener 在其內添加一個定時器 示例代碼如下所示

import java util Timer;

import javax servlet ServletContextEvent;

import javax servlet ServletContextListener;

import javax servlet ServletException;

import javax servlet ServletRequest;

import javax servlet ServletResponse;

import javax servlet HttpServlet;

public class ContextListener

extends HttpServlet

implements ServletContextListener {

public ContextListener() {

}

private java util Timer timer = null;

public void contextInitialized(ServletContextEvent event) {

timer = new java util Timer(true);

event getServletContext() log( 定時器已啟動 );

timer schele(new MyTask(event getServletContext()) * * );

event getServletContext() log( 已經添加任務調度表 );

}

public void contextDestroyed(ServletContextEvent event) {

timer cancel();

event getServletContext() log( 定時器銷毀 );

}

}

以上代碼中 timer schele(new MyTask(event getServletContext()) * * )這一行為定時器調度語句 其中MyTask是自定義需要被調度的執行任務(在我的財政數據中心項目中就是報表計算引擎入口) 從 java util TimerTask繼承 下面會重點講述 第三個參數表示每小時(即 * * 毫秒)被觸發一次 中間參數 表示無延遲 其它代碼相當簡單 不再詳細說明

稿掘宏下面介紹MyTask的實現 上面的代碼中看到了在構造MyTask時 傳入了javax servlet ServletContext類型參數 是為記錄Servlet日誌方便而傳入 因此需要重載MyTask的構造函數(其父類java util TimerTask原構造函數是沒有參數的) 在timer schele()的調度中 設置了每小時調度一次 因此如果想實現調度任務每 小時被執行一次 還需要判斷一下時鍾點 以常量C_SCHEDULE_HOUR表示(晚上 點 也即 點) 同時為防止 小時執行下來 任務還未執行完(當然 一般任務是沒有這么長的) 避免第二次又被調度以引起執行沖突 設置了當前是否正在執行的狀態標志isRunning 示例代碼如下所示

import java util *;

import javax servlet ServletContextEvent;

import javax servlet ServletContextListener;

import javax servlet ServletException;

import javax servlet ServletRequest;

import javax servlet ServletResponse;

import javax servlet HttpServlet;

import javax servlet *;

public class MyTask extends TimerTask {

private static final int C_SCHEDULE_HOUR = ;

private static boolean isRunning = false;

private ServletContext context = null;

public MyTask() {

}

public MyTask(ServletContext context) {

ntext = context;

}

public void run() {

Calendar cal = Calendar getInstance();

if (!isRunning) {

if (C_SCHEDULE_HOUR == cal get(Calendar HOUR_OF_DAY)) {

isRunning = true;

context log( 開始執行指定任務 );

//TODO 添加自定義的詳細任務 以下只是示例

//系統定時接收郵件

Email email=new Email();

email recieve();

isRunning = false;

context log( 指定任務執行結束 );

}

}

else {

context log( 上一次任務執行還未結束 );

}

}

}

到這兒 ServletContextListener和MyTask的代碼都已完整了 最後一步就是把ServletContextListener部署到您的Web工程中去 在您工程的web xml配置文件中加入如下三行

<listener>

<listener class> test ContextListener</listener class>

</listener>

lishixin/Article/program/Java/hx/201311/26421

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

Calendar cal = Calendar.getInstance();
//每天定點執行
cal.set(Calendar.HOUR_OF_DAY,12);
cal.set(Calendar.MINUTE,0);
cal.set(Calendar.SECOND,0);
Timer timer = new Timer();
timer.schele(new TimerTask() {
public void run() {
//執行的內內容容
}
},cal.getTime(), 24*60*60*1000);

閱讀全文

與java定時器每天執行相關的資料

熱點內容
有什麼網站可以做衣服 瀏覽:896
蘇州企業qq 瀏覽:195
安全編程是什麼 瀏覽:603
什麼能存儲視頻數據最久 瀏覽:817
怎麼用少兒編程在電腦上製作游戲 瀏覽:57
一元雲購怎麼編程 瀏覽:56
別人的u盤文件可以用嗎 瀏覽:665
微信電腦如何保存視頻文件 瀏覽:658
qq語音游戲聲音 瀏覽:641
w7文件系統損壞怎麼辦 瀏覽:267
文件名前設置 瀏覽:509
office保存文件出錯 瀏覽:589
離型膜厚檢測數據結果怎麼看 瀏覽:411
c格式文件打不開是怎麼回事 瀏覽:644
cad2014缺少d3文件 瀏覽:484
三星微信數據清理了怎麼恢復 瀏覽:277
oppo倒數據用什麼軟體 瀏覽:729
銷售額數據變動的主要原因是什麼 瀏覽:807
qq設置常用登錄地址嗎 瀏覽:765
視頻如何添加app畫面 瀏覽:303

友情鏈接