Spring boot with Schedule (启用/禁用)

本文节选自《Netkiller Java 手札》

5.19.4. 计划任务控制

matchIfMissing = true, 如果改属性条目不存在返回 true

@ConditionalOnProperty("batch.metrics.export.influxdb.enabled")
			
# mybean.enabled = true
@ConditionalOnProperty(value='mybean.enabled')
@ConditionalOnProperty(value = "endpoints.hal.enabled", matchIfMissing = true)

# server.host = localhost
@ConditionalOnProperty(name="server.host", havingValue="localhost")
@ConditionalOnExpression("'${server.host}'=='localhost'")

# spring.rabbitmq.dynamic = true
@ConditionalOnProperty(prefix = "spring.rabbitmq", name = "dynamic", matchIfMissing = true)
@ConditionalOnProperty(prefix = "extension.security.cors", name = "enabled", matchIfMissing = false)
@ConditionalOnProperty(prefix = "camunda.bpm.job-execution", name = "enabled", havingValue = "true", matchIfMissing = true)

# spring.social.auto-connection-views = true
@ConditionalOnProperty(prefix = "spring.social.", value = "auto-connection-views")			

使用案例

			package mis.schedule;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@ConditionalOnProperty("mis.schedule.enabled")
@Component
public class ScheduledTasks {
	private static final Logger logger = LoggerFactory.getLogger(ScheduledTasks.class);
	private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");
	public final static long ONE_DAY = 24 * 60 * 60 * 1000;
	public final static long ONE_HOUR = 60 * 60 * 1000;
	public final static long ONE_SECOND = 1000;

	public ScheduledTasks() {
		// TODO Auto-generated constructor stub
	}

	@Scheduled(fixedDelay = ONE_SECOND)
	public void scheduleTaskSplitLine() {
		logger.info("==================== {} ====================", dateFormat.format(new Date()));
	}
}			

application.properties 配置如下

mis.schedule.enabled=true

原文发布于微信公众号 - Netkiller(netkiller-ebook)

原文发表时间:2017-06-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏刘望舒

Android App 优化之ANR详解

ANR全名Application Not Responding, 也就是"应用无响应". 当操作在一段时间内系统无法处理时, 系统层面会弹出上图那样的ANR对话...

811
来自专栏Android开发经验

Volley从源码梳理主要工作流程简记

重点来了。 这里开启了一个缓存调度线程CacheDispatcher,一个网络请求调度线程NetworkDispatcher。

392
来自专栏程序你好

Spring Security与OAuth2

Spring Security为基于j2ee的企业软件应用程序提供了全面的安全服务。它强大、灵活、可插。它不像代理服务器、防火墙、OS级别安全性、入侵检测系统或...

993
来自专栏一个爱瞎折腾的程序猿

个人项目框架搭建 -- Autofac简单使用记录

572
来自专栏kl的专栏

spring batch进阶-基于RabbitMQ远程分区Step

关于spring batch概念及基本使用,可移步《spring batch精选,一文吃透spring batch》,本文主要内容为spring batch的进...

4687
来自专栏白驹过隙

ACE - Reactor实现I/O,Dispatch,Service三层完整服务器(完结)

35617
来自专栏跟着阿笨一起玩NET

.NET开发中的事务处理大比拼

本文转载:http://www.cnblogs.com/jhxk/articles/2696307.html

431
来自专栏跟着阿笨一起玩NET

WebService基于SoapHeader实现安全认证(二)

支持通过Http请求方法调用webservice,同时支持SoapHeader验证。

591
来自专栏跟着阿笨一起玩NET

.NET事务 隐式事务(TransactionScope) 显示事务(CommittableTransaction) WebService(TransactionOption)

如需运行分布式事务,需启动Distributed Transaction Coordinator服务,如启动该服务报错,输入CMD命令msdtc -resetl...

481
来自专栏向治洪

android AlarmManager讲解

Android系统闹钟定时功能框架,总体来说就是用数据库存储定时数据,有一个状态管理器来统一管理这些定时状态的触发和更新。在Andriod系统中实现定时功能,...

3845

扫码关注云+社区