java到时间自动执行方法

JAVA 怎么自动定时运行一个方法

spring 的定时器。

!– 影票系统定时任务 —

bean name=”quartzFactoryBean”

class=”org.springframework.scheduling.quartz.SchedulerFactoryBean”

property name=”triggers”

list

!–

ref bean=”filmtrigger” /

ref bean=”filmtrigger2″ /

ref bean=”filmtrigger3″ /

ref bean=”filmtrigger4″ /

ref bean=”filmtrigger5″ /

ref bean=”filmtrigger6″ /

这里随便配置

/list

/property

/bean

bean name=”filmtrigger” class=”org.springframework.scheduling.quartz.CronTriggerBean”

property name=”jobDetail” ref=”filmjob” /

property name=”cronExpression” value=”0 1 0 * * ?” / 0时 1分 0秒启动

!– property name=”startDelay” value=”3″/ —

/bean

bean id=”filmjob”

class=”org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean”

//下面配置在那个类的那个方法使用定时

property name=”targetObject” ref=”类” /

property name=”targetMethod” value=”方法” /

property name=”concurrent” value=”false” /

/bean

java如何在每一天的凌晨00:00:00自动运行程序?

LZ指的是定时任务吧

在java里面做定时任务通常是线程的

下面有个简单的定时任务(没验证是否好使 但基本是这个样子的)

在web.xml里面增加一个监听

listener

listener-classCountListen/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.schedule(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到时间自动执行方法

在Java中如何设置一个定时任务,在每天的一个时间点自动执行一个特定的程序?具体代码怎么写?代码全点

Quartz定时机制

首先导入jar包到程序内 quartz-all-1.6.0.jar

然后创建一个XML

TimeConfig.xml 名字可以自己定义

?xml version=”1.0″ encoding=”UTF-8″?

!DOCTYPE beans PUBLIC “-//SPRING//DTD BEAN//EN”

“”

beans

bean id=”mainTask” class=”net.timed.MainTask”/ //你要执行的任务类

//jar类

bean id=”mainJob” class=”org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean”

property name=”targetObject”

ref bean=”mainTask”///将你的类添加到定时器当中

/property

property name=”targetMethod”

valueexecute/value //定时执行类里面的哪个方法

/property

/bean

bean id=”timeTrigger” class=”org.springframework.scheduling.quartz.CronTriggerBean”

property name=”jobDetail”

ref bean=”mainJob”/

/property

!–

0 0 10,14,16 * * ? 每天上午10点,下午2点,4点

0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时

0 0 12 ? * WED 表示每个星期三中午12点

“0 0 12 * * ?” 每天中午12点触发

“0 15 10 ? * *” 每天上午10:15触发

“0 15 10 * * ?” 每天上午10:15触发

“0 15 10 * * ? *” 每天上午10:15触发

“0 15 10 * * ? 2005” 2005年的每天上午10:15触发

“0 * 14 * * ?” 在每天下午2点到下午2:59期间的每1分钟触发

“0 0/5 14 * * ?” 在每天下午2点到下午2:55期间的每5分钟触发

“0 0/5 14,18 * * ?” 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发

“0 0-5 14 * * ?” 在每天下午2点到下午2:05期间的每1分钟触发

“0 10,44 14 ? 3 WED” 每年三月的星期三的下午2:10和2:44触发

“0 15 10 ? * MON-FRI” 周一至周五的上午10:15触发

“0 15 10 15 * ?” 每月15日上午10:15触发

“0 15 10 L * ?” 每月最后一日的上午10:15触发

“0 15 10 ? * 6L” 每月的最后一个星期五上午10:15触发

“0 15 10 ? * 6L 2002-2005” 2002年至2005年的每月的最后一个星期五上午10:15触发

“0 15 10 ? * 6#3” 每月的第三个星期五上午10:15触发

上面这个是quartz的语法 定时单位

property name=”cronExpression”

value0 0/5 * * * ?/value //定时的语法

/property

/bean

bean id=”sfb” class=”org.springframework.scheduling.quartz.SchedulerFactoryBean”

property name=”triggers”

list

ref local=”timeTrigger”/

/list

/property

/bean

/beans

//下面这个类就是我在XML中引入的类

package net.timed;

import java.io.IOException;

import java.text.SimpleDateFormat;

import java.util.Date;

public class MainTask {

public void execute() throws IOException

{

SimpleDateFormat dateFormat = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

System.out.println(“do my job”+dateFormat.format(new Date()));

Runtime.getRuntime().exec(“cmd /c start E:/mbl/BusinessOffice/MoneDB/bin/bakup.bat”);

}

}

然后在web.xml中把这个TimeConfig.xml添加进去作为监听

系统启动的时候自动就监听这个事件

?xml version=”1.0″ encoding=”UTF-8″?

web-app version=”2.5″

xmlns=””

xmlns:xsi=””

xsi:schemaLocation=”

context-param

param-name

contextConfigLocation

/param-name

param-value

/WEB-INF/TimerConfig.xml

/param-value

/context-param

listener

listener-class

org.springframework.web.context.ContextLoaderListener

/listener-class

/listener

welcome-file-list

welcome-fileindex.jsp/welcome-file

/welcome-file-list

/web-app

这个是quartz spring的定时机制 请仔细的看看 如果可以请给分哦

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 {

//SchedulerFactory 是一个接口,用于Scheduler的创建和管理

SchedulerFactory factory = new StdSchedulerFactory();

//从工厂里面拿到一个scheduler实例

//计划表(可能翻译的不太贴切),现在我们有了要做的内容,

//与调度程序交互的主要API

/*

* Scheduler的生命期,从SchedulerFactory创建它时开始,

到Scheduler调用shutdown()方法时结束;Scheduler被创建后,

可以增加、删除和列举Job和Trigger,以及执行其它与调度相关的操作

(如暂停Trigger)。但是,Scheduler只有在调用start()方法后,

才会真正地触发trigger(即执行job)

*/

Scheduler scheduler = factory.getScheduler();

//具体任务.

//用于定义作业的实例

//JobBuilder – 用于定义/构建JobDetail实例,用于定义作业的实例。

JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity(“job1”, “group1”).build();

//Trigger(即触发器) – 定义执行给定作业的计划的组件

//TriggerBuilder – 用于定义/构建触发器实例

CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(“trigger1”, “group1”)

.withSchedule(CronScheduleBuilder.cronSchedule(“0/1 * * * * ?”)).build();

scheduler.scheduleJob(job, trigger);

scheduler.start();

}

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月24日 17:33:56
下一篇 2024年3月24日 17:43:06

相关推荐

  • 深入java虚拟机pdf,深入java虚拟机 中村成洋 pdf

    在linux环境下,java怎么实现从word格式转换为pdf格式 //设置当前使用的打印机,我的Adobe Distiller打印机名字为 Adobe PDF wordCom.setProperty( ActivePrinter , new Variant( Adobe PDF ));//设置printout的参数,将word文档打印为postscript…

    2024年5月23日
    4000
  • java截取指定长度字符串,java截取指定字符串之后的

    java中如何截取字符串中的指定一部分 第一个参数是开始截取的字符位置。(从0开始)第二个参数是结束字符的位置+1。(从0开始)indexof函数的作用是查找该字符串中的某个字的位置,并且返回。 int end);截取s中从begin开始至end结束时的字符串,并将其赋值给s;split讲解:java.lang.string.split split 方法 将…

    2024年5月23日
    3800
  • java绑定一个端口,java使用端口

    java如何多个service共用一个端口 你如果有多个项目的话,你可以把多个项目放到一个tomcat里面,这样端口相同使用项目名称来进行区分项目。你如果非要使用同一个,你也可以配置不同的域名导向不同的项目。就是访问的域名不同转接到的项目不同。 如果需要同时启动多个程序,要么修改tomcat的配置文件中的监听端口。要么修改jar包程序的监听端口。不能在一台服…

    2024年5月23日
    3000
  • java对数组计算,java数组计算时间复杂度

    Java中数组运算 1、很简单,因为你的数组是局部变量,只在那个声明它的方法里能用,解决办法是: 把它设置为属性; 作为方法的返回值。 2、将它们相加,并将结果存储到result数组中相应的位置。- 最后返回result数组即可。需要注意的是,上面的代码中我们使用了三元运算符 ? : 来判断数组的下标是否越界,如果越界则将值设为0。 3、public sta…

    2024年5月23日
    4700
  • java多线程并发编程基础,Java多线程并发执行返回

    电脑培训分享Java并发编程:核心理论 电脑培训发现本系列会从线程间协调的方式(wait、notify、notifyAll)、Synchronized及Volatile的本质入手,详细解释JDK为我们提供的每种并发工具和底层实现机制。 人们开始意识到了继承的众多缺点,开始努力用聚合代替继承。软件工程解决扩展性的重要原则就是抽象描述,直接使用的工具就是接口。接…

    2024年5月23日
    4200
  • 自学java找工作,自学java找工作需要包装简历吗

    自学java学多久可以找到工作 1、自学Java至少需要一年以上的时间才能达到找工作的水平。报班培训四到六个月的时间就可以找到一份不错的工作。 2、自学Java至少需要一年以上的时间才能达到找工作的水平。 3、如果要想找到一份Java相关的工作,需要至少学习5-6个月时间才能就业。Java开发需要掌握一些基础的编程语言知识,比如掌握面向对象的编程思想、基本的…

    2024年5月23日
    3800
  • java左移右移,java 左移

    java位移问题 1、思路:直接用Integer类的bit运算操作。 2、移位操作:左移:向左移位,符号后面的数字是移了多少位,移的位用0补齐,例如2进制数01111111左移一位后变为11111110,移位是字节操作。 3、Java 位运算 Java 位运算[转]一,Java 位运算表示方法: 在Java语言中,二进制数使用补码表示,最高位为符号位,正数的…

    2024年5月23日
    3700
  • java技术规范,java规范性要求

    现在主流的JAVA技术是什么? java最流行开发技术程序员必看 1 、Git Git一直是世界上最受欢迎的Java工具之一,也是Java开发人员最杰出的工具之一。Git是一个开源工具,是-种出色的分布式版本控制解决方案。 (1).Java基础语法、数组、类与对象、继承与多态、异常、范型、集合、流与文件、反射、枚举、自动装箱和注解。(2).Java面向对象编…

    2024年5月23日
    3500
  • javasocket编程,Java socket编程中,禁用nagle算法的参数

    Java进行并发多连接socket编程 1、Java可利用ServerSocket类对外部客户端提供多个socket接口。基本的做法是先创建一个ServerSocket实例,并绑定一个指定的端口,然后在这个实例上调用accept()方法等待客户端的连接请求。 2、Socket socket=server.accept(0;Thread handleThrea…

    2024年5月23日
    4100
  • c语言输入数组,C语言输入数组的方法

    如何用c语言从键盘输入10个数存入数组并求和? 1、用C语言编写一段程序,用来输入10个整数保存到数组中,求出这10个整数的和并输出。 2、,数组是相同数据类型的元素的集合。 2,数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。 3,数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。 3、void main(){ fl…

    2024年5月23日
    4600

发表回复

登录后才能评论



关注微信