真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java循環(huán)定時器代碼 js循環(huán)定時器

java定時器

import?java.io.IOException;

城陽ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

import?java.util.Timer;

public?class?TimerTest?{

public?static?void?main(String[]?args)?{

Timer?timer?=?new?Timer();

timer.schedule(new?MyTask(),?1000,?2000);//?在1秒后執(zhí)行此任務,每次間隔2秒,如果傳遞一個Data參數(shù),就可以在某個固定的時間執(zhí)行這個任務.

while?(true)?{//?這個是用來停止此任務的,否則就一直循環(huán)執(zhí)行此任務了

try?{

int?ch?=?System.in.read();

if?(ch?-?'c'?==?0)?{

timer.cancel();//?使用這個方法退出任務

}

}?catch?(IOException?e)?{

//?TODO?Auto-generated?catch?block

e.printStackTrace();

}

}

}

static?class?MyTask?extends?java.util.TimerTask?{

@Override

public?void?run()?{

//?TODO?Auto-generated?method?stub

System.out.println("________");

}

}

}

這段代碼基本能滿足你需求了 你還有需求就在上面再套一層job 當然如過太復雜了而且這種定時需求很多的話 建議用quartz框架 使用很簡單

Java定時器

好多朋友用過Windows的任務計劃 也有不少程序迷自己曾寫過時鐘報警 系統(tǒng)自動關機等趣味程序 可卻很少有朋友在Web工程中實現(xiàn)過類似功能

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

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

我把ServletContextListener的實現(xiàn)類取名為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 schedule(new MyTask(event getServletContext()) * * );

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

}

public void contextDestroyed(ServletContextEvent event) {

timer cancel();

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

}

}

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

下面介紹MyTask的實現(xiàn) 上面的代碼中看到了在構造MyTask時 傳入了javax servlet ServletContext類型參數(shù) 是為記錄Servlet日志方便而傳入 因此需要重載MyTask的構造函數(shù)(其父類java util TimerTask原構造函數(shù)是沒有參數(shù)的) 在timer schedule()的調度中 設置了每小時調度一次 因此如果想實現(xiàn)調度任務每 小時被執(zhí)行一次 還需要判斷一下時鐘點 以常量C_SCHEDULE_HOUR表示(晚上 點 也即 點) 同時為防止 小時執(zhí)行下來 任務還未執(zhí)行完(當然 一般任務是沒有這么長的) 避免第二次又被調度以引起執(zhí)行沖突 設置了當前是否正在執(zhí)行的狀態(tài)標志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( 開始執(zhí)行指定任務 );

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

//系統(tǒng)定時接收郵件

Email email=new Email();

email recieve();

isRunning = false;

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

}

}

else {

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

}

}

}

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

listener

listener class test ContextListener/listener class

/listener

lishixinzhi/Article/program/Java/hx/201311/26421

java寫一個定時器,定時對一個變量賦不同值,這個程序代碼怎么寫

import?java.util.Random;

import?java.util.Timer;

import?java.util.TimerTask;

public?class?MainEntry?{

private?int?a;

public?void?setVal(){

Timer?timer?=?new?Timer();

//每隔一秒生成一個[1,100)內的隨機整數(shù),賦給成員a

timer.schedule(new?TimerTask()?{?

@Override

public?void?run()?{

Random?rand?=?new?Random();

setA(rand.nextInt(100));

}

},?1000);

}

public?void?setA(int?a)?{

this.a?=?a;

}

public?int?getA()?{

return?a;

}

public?static?void?main(String[]?args)?{

MainEntry?me?=?new?MainEntry();

me.setVal();

}

}


網(wǎng)站標題:java循環(huán)定時器代碼 js循環(huán)定時器
標題鏈接:http://weahome.cn/article/hpdohi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部