XML配置:
<?xml version="1.0" encoding="gbk"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd">
<!--与运行环境相关的配置文件,该脚本会在不同环境进行替换-->
<context:property-placeholder location="classpath:config/env.properties" ignore-unresolvable="true"
file-encoding="UTF-8"/>
<!--与运行环境无关的配置文件-->
<context:property-placeholder location="classpath:config/project.properties" ignore-unresolvable="true"
file-encoding="UTF-8"/>
<!--app版本配置-->
<context:property-placeholder location="classpath:appVersion.properties" ignore-unresolvable="true"
file-encoding="UTF-8"/>
<!--spring task config-->
<task:scheduler id="api_statistics" pool-size="10"/>
<task:annotation-driven scheduler="api_statistics" mode="proxy"/>
<!--http client-->
<bean id="HttpComponentsClientHttpRequestFactory"
class="org.springframework.http.client.HttpComponentsClientHttpRequestFactory">
<property name="connectTimeout" value="10000"/>
<property name="readTimeout" value="10000"/>
<property name="connectionRequestTimeout" value="10000"/>
</bean>
<!--db config (mysql,redis) -->
<import resource="spring-db.xml"/>
<!--hessian config-->
<import resource="spring-hessian.xml"/>
</beans>
package com.xxx.api.task;
import com.xxx.api.base.RedisKeyPrefix;
import org.simplejavamail.email.Email;
import org.simplejavamail.email.EmailBuilder;
import org.simplejavamail.mailer.Mailer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Scope;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Set;
@Component
@Scope("singleton")
public class ApiTask {
private static final Logger logger = LoggerFactory.getLogger(ApiStatisticsTask.class);
private static final Boolean isOpenCollection = false;
@Resource
private RedisTemplate redisTemplate;
//每天晚上凌晨0点1分触发
@Scheduled(cron = "0 1 0 * * ?")
public void sentMailAndClearRedis() {
if (!isOpenCollection) {
return;
}
logger.info("prepare email ");
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
//处理具体任务
}