⑴ java定時任務的定時表達式,每天早晨6:30執行任務,還有一個是每個月的1號和15號執行任務
public class TestTimerTask extends TimerTask{
public void run() {
Calendar cal = Calendar.getInstance();
//每月5號執行
if(cal.get(Calendar.DATE) == 5){
try {
//需要執行的代碼
} catch (Exception e) {
//logger.error(e);
e.printStackTrace();
}
System.gc();
//......
}
//周日執行
if(cal.get(Calendar.DAY_OF_WEEK) == 1){
try {
//需要執行的代碼
} catch (Exception e) {
// logger.error(e);
e.printStackTrace();
}
System.gc();
}
}
}
public class Test{
public static void main (String[] ages){
Timer timer = new Timer();//定時器
TestTimerTask ts = newTestTimerTask();//定時任務目標
Date firstTime = new Date();//第一次執行時間
long period = 1000 * 60 * 60 * 24;//執行間隔1天
timer.scheleAtFixedRate(ts, firstTime, period);//設置執行參數並且開始定時任務
}
}
⑵ Java如何實現定時提醒功能
在body的noload裡面有個setInterval定時器:
<body style="height: 700px; overflow: hidden;" onload="setInterval('timedAlert()',10000)">
js腳本:
//ajax判斷是否有提醒數據
function timedAlert(){
$.ajax({
type: "get",
url: "${basePath}/plugins/km/headlink/checkNoteCount.jspx",
dataType: "text",
cache: false,
success: function(data){
alert(data);
if(data=='0'){
alert(1);//你的代碼
}else{
alert(22);
}
}
});
}
便簽吧?大概的思路,希望對你有幫助!
⑶ java如何在每一天的凌晨00:00:00自動運行程序
LZ指的是定時任務吧
在java裡面做定時任務通常是線程的
下面有個簡單的定時任務(沒驗證是否好使 但基本是這個樣子的)
在web.xml裡面增加一個監聽
<listener>
<listener-class>CountListen</listener-class>
</listener>
具體代碼如下
import javax.servlet.ServletContextListener;
import javax.servlet.ServletContextEvent;
import java.util.*;
public class CountListen
implements ServletContextListener {
private java.util.Timer timer = null;
public void contextInitialized(ServletContextEvent event) {
timer = new java.util.Timer(true);
event.getServletContext().log("定時器已啟動");
System.out.println("定時器已啟動");
Date date = new Date(1900,1,1,23,59);
timer.schele(new SampleTask(event.getServletContext()),0,
24 * 60 * 60 * 1000);
event.getServletContext().log("已經添加任務調度表");
System.out.println("已經添加任務調度表");
}
public void contextDestroyed(ServletContextEvent event) {
timer.cancel();
event.getServletContext().log("定時器銷毀");
}
}
import java.util.*;
import javax.servlet.ServletContext;
import com.founder.gongan.util.ConfigPropertie;
import com.founder.gongan.manage.CountManager;
import com.founder.botong.entity.EnumFolder;
class SampleTask
extends TimerTask {
private static boolean isRunning = true;
private ServletContext context = null;
public SampleTask(ServletContext context) {
this.context = context;
}
public void run() {
if (isRunning) {
isRunning = false;
context.log("開始執行指定任務");
System.out.println("開始執行指定任務");
//指定的任務......
isRunning = true;
context.log("指定任務執行結束");
System.out.println("指定任務執行結束");
}else {
context.log("上一次任務執行還未結束");
}
}
}
⑷ 如何生成單號(Java)
因為時間有限,我只抄能給襲你思路了.首先新建一個配製文件.XML,.properties都可,設三個參數固定數字,日期,流水號.首先,寫一個定時任務,每天00:00執行,用初始化這三個參數.再先一個UTIL類,這個類的功能就是讀取流水號,給這個流水號+1,再把這個流水號保存到配製文件里,記得讀取的時候上把鎖.用到的java知識有TimerTask,在JAVA的包中,有提供專門的操作,.properties屬性文件的類java.uitl.Properties類可以很容易的實現讀寫,再就是同步和非同步操作.
還有別外一個方法就是,用資料庫來實現,建一個序列,設一個定時器,每天00:00執行,功能就是把你新建的序列號置為1,日期和國定號可以隨時讀取,再拼成字元串就可以返回了,這種方法簡單,不需要控制什麼.
⑸ java怎樣啟動定時器
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);
}
⑹ java怎麼每隔一秒鍾輸出一個隨機數(1-10之間)
一個用到定時器,一個用到隨機函數,
定時器就不說了,隨機函數也不說了,
自己去查文檔,幾行代碼就搞定了
⑺ 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 中定時器的問題 問題描述:我想在每個月的20號19點20分0秒執行任務.
timer.schele(timerTask, 0, time);
這個里汪鋒面 time 是時間間隔 ,間隔嫌仔多少時間執行芹陵汪一次這個timerTask。
就是需要看你怎麼設置了。
⑼ 求高手指點一二,我需要用java編寫一個定時器,每天8點開始執行,每一個小時執行一次,過了晚上12點停止
ScheledExecutorServiceservice=Executors.();
service.scheleAtFixedRate(newTimerTask(){
@Override
publicvoidrun(){
if(當前時間>8點){
dowork();//你要做的事
}
if(當前時間>12點){
this.cancel();
}
}
},0,1,TimeUnit.HOURS);