文档章节

Scheduling Tasks

Rksi5
 Rksi5
发布于 2014/11/21 02:59
字数 331
阅读 623
收藏 4
点赞 0
评论 0

在spring的<task:*> XML名字空间功能一样,使用在Configuration类如下:
    @Configuration
    @EnableScheduling
    public class AppConfig {
        //@Bean 定义
    }
    在spring容器管理bean中检测@Scheduled注解。如:
    package com.myco.task;
    public class MyTask {
        @Scheduled(fixedRate=1000)
        public void work() {
            //task execution logic
        }
    }
    
    下面的配置保证MyTask.work()每1s调用一次
    @Configuration
    @EnableScheduling
    public class AppConfig {
        @Bean
        public MyTask task() {
            return new MyTask();
        }
    }

    或者,若MyTask使用@Component注解,下面配置可以保证它的@Scheduled方法间隔执行
    @Configuration
    ComponentScan(basePackages="com.myco.tasks")
    public class AppConfig {
        
    }
    
    @Scheduled方法甚至可以直接声明在@Configuration的类:
    @Configuration
    @EnableScheduling
    public class AppConfig {
        @Scheduled(fixedRate=1000)
        public void work() {
            // task execution logic
        }
    }
    
    上述场景中,默认使用的单线程执行,当需要更多线程控制时,一个@Configuration类可以实现SchedulingConfigurer接口。
    这容许访问底层实例,怎样定制Executor执行调度任务:
    @Configuration
    @EnableScheduling
    public class AppConfig implements SchedulingConfigurer {
        @Override
        public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
            taskRegistrar.setScheduler(taskExecutor());
        }
        @Bean(destroyMethod="shutdown")
        public Executor taskExecutor() {
            return Executors.newScheduledThreadPool(100);
        }
    }
    //destroyMethod="shutdown"当spring应用上下文关闭时确保任务执行器能正确的关闭
    实现SchedulingConfigurer也容许通过ScheduledTaskRegistrar细粒度控制任务注册。
    如以下配置特定bean方法的执行每一个自定义实现:
    @Configuration
    @EnableScheduling
    public class AppConfig implements SchedulingConfigurer {
        @Override
        public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
            taskRegistrar.setScheduler(taskScheduler());
            taskRegistrar.addTriggerTask(
                new Runnable() {
                    public void run() {
                        myTask().work();
                    }
                },
                new CustomTrigger()
            );
        }
        @Bean(destroyMethod="shutdown")
        public Executor taskScheduler() {
            return Executors.newScheduledThreadPool(42);
        }
        
        @Bean
        public MyTask myTask() {
            return new MyTask();
        }
    }

© 著作权归作者所有

共有 人打赏支持
Rksi5
粉丝 1
博文 41
码字总数 50463
作品 0
深圳
程序员
spring定时器用Annotation实现

1.ApplicationContext.xml配置 a)、需要在xmlns里面加入: xmlns:task="http://www.springframework.org/schema/task" b)、在xsi:schemaLocation中加入 http://www.springframework.org/sch......

锁力 ⋅ 2011/12/30 ⋅ 1

GANTTIC 3.1 发布,项目管理系统

GANTTIC 是一个基于Web的项目管理系统,用于安排项目过程中各种资源的协作,提供了用户友好的图形化界面和交互式甘特图,实现实时的协作功能。可作为微软 Project 工具的替换品。 Changes: 1...

红薯 ⋅ 2011/04/07 ⋅ 2

rejected from java.util.concurrent.ThreadPoolExe错误

java.util.concurrent.RejectedExecutionException:Task com.dangdang.product.cron.job.JobRun$2@6e9764d4rejected from java.util.concurrent.ThreadPoolExecutor@740642a9[Shutting down,......

macker ⋅ 2014/01/20 ⋅ 0

Apache Mesos 0.22.1 发布,集群管理器

Apache Mesos 0.22.1 发布,此版本更新内容: Bug 修复 [MESOS-1795] - Assertion failure in state abstraction crashes JVM [MESOS-2161] - AbstractState JNI check fails for Marathon ......

oschina ⋅ 2015/06/01 ⋅ 0

JAVA CONCURRENCY EXECUTORS 介绍Java并发处理线程池

I would make a fool out of myself if I tell you that util.concurrent APIs kicks cheetah's ass when the classes are available since 2004. However, there are some cool features wh......

Oscarfff ⋅ 2016/05/20 ⋅ 0

海洋饼干/dotnet-tpl-dataflow

TPL Dataflow This project is a complete port of the System.Threading.Tasks.Dataflow assembly to support .NET 4.0 and newer. TPL Dataflow promotes actor/agent-oriented designs th......

海洋饼干 ⋅ 2015/04/05 ⋅ 0

集群管理器--Apache Mesos

Apache Mesos是一个集群管理器,提供了有效的、跨分布式应用或框架的资源隔离和共享,可以运行Hadoop、MPI、Hypertable、Spark。 特性: Fault-tolerant replicated master using ZooKeeper...

匿名 ⋅ 2012/01/08 ⋅ 3

Windows计划任务框架--WinServiceTask

一、功能摘要: 1. 启动触发时间采用开源的Quartz.Net项目的Cron表达式:"0 0 12 ?" 每天中午12点触发; 2. 多线程运行各任务,互不干扰; 3. 自动监视配置文件,配置文件更改后服务重启; ...

匿名 ⋅ 2010/11/23 ⋅ 0

Celery: Distributed Task Queue

Celery is an asynchronous task queue/job queue based on distributed message passing. It is focused on real-time operation, but supports scheduling as well. The execution units, ......

shaohan ⋅ 2014/04/29 ⋅ 0

Timer/TimerTask 学习

今天看到在server有用到Timer来不断的更新数据的转台,然后通过消息方式通知前端,感觉还是挺有用处的。 import java.util.Timer;import java.util.TimerTask; public class TimerTest { @O...

pczhangtl ⋅ 2014/01/15 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Hive函数

1.函数explode (一转多) create table hive_wc(sentence string); load data local inpath '/home/hadoop/data/hive-wc.txt' into table hive_wc; 结果: hive > select * from hive_wc; ......

GordonNemo ⋅ 26分钟前 ⋅ 0

PE格式第三讲扩展,VA,RVA,FA的概念

作者:IBinary 出处:http://www.cnblogs.com/iBinary/ 版权所有,欢迎保留原文链接进行转载:) 一丶VA概念 VA (virtual Address) 虚拟地址的意思 ,比如随便打开一个PE,找下它的虚拟地址 这边...

simpower ⋅ 43分钟前 ⋅ 0

使用Java connector消费ABAP系统的函数

Java Connector(JCO)环境的搭建:Step by step to download and configure JCO in your laptop 我的ABAP系统有个函数名叫ZDIS_GET_UPSELL_MATERIALS,输入一个customer ID和product ID,会输......

JerryWang_SAP ⋅ 49分钟前 ⋅ 0

IDEA提示编码速度

焦点移动 将焦点冲代码编辑窗口移动到菜单栏:Alt+菜单栏带下划线字母 将焦点从工具窗口移动到代码编辑窗口 Esc或Shift+Esc 将焦点从代码编辑移动到最近使用的工具窗口 F12 模板提示 Ctrl+J...

bithup ⋅ 今天 ⋅ 0

180623-SpringBoot之logback配置文件

SpringBoot配置logback 项目的日志配置属于比较常见的case了,之前接触和使用的都是Spring结合xml的方式,引入几个依赖,然后写个 logback.xml 配置文件即可,那么在SpringBoot中可以怎么做?...

小灰灰Blog ⋅ 今天 ⋅ 0

冒泡排序

原理:比较两个相邻的元素,将值大的元素交换至右端。 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第...

人觉非常君 ⋅ 今天 ⋅ 0

Vagrant setup

安装软件 brew cask install virtualboxbrew cask install vagrant 创建project mkdir -p mst/vmcd mst/vmvagrant init hashicorp/precise64vagrant up hashicorp/precise64是一个box......

遥借东风 ⋅ 今天 ⋅ 0

python3.6 安装pyhook_3

我的是在win下的,忙了半天老是安装不了, pip install 也不行。 那么可以看出自己的版本是32bit 一脸懵逼 没办法 只好下载32版本的来安装 我一直以为 是 对应32 位的 。 下面是 小例子 http...

之渊 ⋅ 今天 ⋅ 0

004、location正则表达式

1、location的作用 location指令的作用是根据用户请求的URI来执行不同的应用,也就是根据用户请求的网站URL进行匹配,匹配成功即进行相关的操作。 2、location的语法 = 开头表示精确匹配 ^~...

北岩 ⋅ 今天 ⋅ 0

CentOS7 静默安装 Oracle 12c

环境 CentOS7.5 最小安装 数据库软件 linuxx64_12201_database.zip 操作系统配置 关闭 SELinux sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config 关闭防火墙 systemctl disable ......

Colben ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部