java定时任务,
分享于 点击 8658 次 点评:268
java定时任务,
java定时任务的实现有很多方式。
比如,开启一个单独的线程,按照自己的规则,一直循环执行。这种方式适用于简单的任务。
java还提供了定时任务相关的类。java.util.Timer和java.util.TimerTask,还有java.util.concurrent.ScheduledExecutorService。
另外,开源项目Quartz实现了简单且强大的作业调度框架。使用Spring时,可以很容易进行整合。
Spirng自己也提供了定时任务的实现:spring task。无需额外的jar包,支持注解和配置方式。
简单说一下配置方式的实现:
1:根据需要,写一个定时任务的类。使用@Component注解进行扫描。(或者配置进去也行)
package pers.wargon.task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
/**
* 商户相关的定时任务
*/
@Component("businessTask")
public class BusinessTask {
private static final Logger logger = LoggerFactory.getLogger(BusinessTask.class);
/**
* 同步已售数量
*/
public void synNumber(){
logger.info("已同步");
}
}
配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<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:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--扫描task包-->
<context:component-scan base-package="pers.wargon.task"/>
<!--启动定时任务-->
<task:scheduled-tasks>
//每个task指定一个任务类。ref指定Bean的id,method指定定时任务方法。corn指定定时规则。
//corn表达式具体可以百度。
<task:scheduled ref="businessTask" method="synNumber" cron="0 */5 * * * ?"/>
</task:scheduled-tasks>
</beans>
再把配置文件指定到spring容器中,就OK了
相关文章
- 暂无相关文章
用户点评