Jboss7中ejb3使用@Schedule调度器总是每分钟执行

简介: Jboss7中ejb3使用@Schedule调度器总是每分钟执行 1 问题:当我尝试着去开发一个ejb3的@Schedule调度器来执行我预定每5秒钟执行一次的任务时。
+关注继续查看

Jboss7中ejb3使用@Schedule调度器总是每分钟执行

1 问题:当我尝试着去开发一个ejb3的@Schedule调度器来执行我预定每5秒钟执行一次的任务时。我意外的发现无论我怎么设置,该@Schedule以每分钟来运行。

import java.text.SimpleDateFormat;
import java.util.Date;
import javax.ejb.Schedule;
import javax.ejb.Stateless;
/**
 * 845885222@qq.com
 * @author youyou
 */
@Stateless
public class MakeHtmlSchedule {
    @Schedule(second = "*/10", minute = "*", hour = "*", persistent = false)
    public void doWork() {
        Date currentTime = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
        System.out.println("ScheduleExample.doWork() invoked at " + simpleDateFormat.format(currentTime));
    }
}
2 一个定时调度器不一定是@singleton注解的对象,也可以使用@Stateless,甚至使用@Stateful的bean。如果使用的@Stateless或者@Stateful,那么doWork()方法只会是每分钟调用一次。改动为使用@Singleton装饰,就可以实现每10秒运行一次doWork()方法了。


import java.text.SimpleDateFormat;
import java.util.Date;
import javax.ejb.Schedule;
import javax.ejb.Singleton;
/**
 * 845885222@qq.com
 * @author youyou
 */
@Singleton
public class MakeHtmlSchedule {
    @Schedule(second = "*/10", minute = "*", hour = "*", persistent = false)
    public void doWork() {
        Date currentTime = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
        System.out.println("ScheduleExample.doWork() invoked at " + simpleDateFormat.format(currentTime));
    }
}


每10秒钟执行一次的效果:

VEIGHT 2015-01-31 22:59:00,002 INFO (EJB default - 5) ScheduleExample.doWork() invoked at 2015.01.31 公元 at 22:59:00 CST
VEIGHT 2015-01-31 22:59:10,002 INFO (EJB default - 7) ScheduleExample.doWork() invoked at 2015.01.31 公元 at 22:59:10 CST
VEIGHT 2015-01-31 22:59:20,001 INFO (EJB default - 8) ScheduleExample.doWork() invoked at 2015.01.31 公元 at 22:59:20 CST


3 参考链接:http://www.adam-bien.com/roller/abien/entry/simplest_possible_ejb_3_16






目录
相关文章
|
5月前
|
缓存 NoSQL Java
SpringBoot定时任务@Scheduled的多线程使用
@Scheduled是Spring框架中的一个注解,它可以用于配置定时任务,使得方法可以按照规定的时间间隔定时执行。在使用该注解时,我们可以指定任务的执行时间、循环周期、并发数等参数,从而实现定时任务的功能。在Spring Boot中,@Scheduled注解可以直接应用于方法上。
204 0
|
7月前
|
XML Java 调度
Spring task:annotation-driven配置之 @Scheduled定时任务的fixedRate,fixedDelay,cron执行差异
Spring task:annotation-driven配置之 @Scheduled定时任务的fixedRate,fixedDelay,cron执行差异
112 0
|
9月前
|
IDE Java 开发工具
Java使用Scheduled注解实现定时任务功能
Java使用Scheduled注解实现定时任务功能
471 0
Java使用Scheduled注解实现定时任务功能
|
9月前
|
存储 Java API
调度线程池ScheduledThreadPoolExecutor源码解析
调度线程池ScheduledThreadPoolExecutor源码解析
86 0
调度线程池ScheduledThreadPoolExecutor源码解析
|
10月前
|
Java 关系型数据库 MySQL
spring schedule 动态配置执行时间
spring schedule 动态配置执行时间
259 0
|
10月前
|
Java API 调度
ThreadPoolTaskScheduler轻量级多线程定时任务框架
面对一些小的功能需求点,如果需要非常灵活的进行处理定时任务处理,但是又因为你的需求需要使用到页面进行定时任务配置,显然使用Spring注解定时任务,无法满足你,这时你想到了xxl-job 或者 quezy等定时任务框架,但是过于繁琐,可能成本较大。那么本文将要解决你的问题
850 0
|
Java 调度 Spring
【小家Spring】Spring任务调度核心接口(类)之---TaskScheduler(任务调度器)、Trigger(触发器)、ScheduledTask(调度任务)详解(下)
【小家Spring】Spring任务调度核心接口(类)之---TaskScheduler(任务调度器)、Trigger(触发器)、ScheduledTask(调度任务)详解(下)
|
Java 调度 Spring
【小家Spring】Spring任务调度核心接口(类)之---TaskScheduler(任务调度器)、Trigger(触发器)、ScheduledTask(调度任务)详解(上)
【小家Spring】Spring任务调度核心接口(类)之---TaskScheduler(任务调度器)、Trigger(触发器)、ScheduledTask(调度任务)详解(上)
【小家Spring】Spring任务调度核心接口(类)之---TaskScheduler(任务调度器)、Trigger(触发器)、ScheduledTask(调度任务)详解(上)
|
调度
Quartz的Scheduler的关闭和挂起,并发控制(四)上
Quartz的Scheduler的关闭和挂起,并发控制(四)上
320 0
Quartz的Scheduler的关闭和挂起,并发控制(四)上