⑴ 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);