美文网首页
SpringTask

SpringTask

作者: w_nanan | 来源:发表于2017-08-01 22:43 被阅读17次

项目有定时任务的需求,对比了Timer、Quartz和SpringTask之后使用了SpringTask来配置定时任务。理由很简单,就是简单!在Spring下简单的一个Xml配置文件或者是注解就能完成功能。

定时的任务是定时通过百度API获取某企业的股票价格..

项目现状:

  1. 项目开启了注解
  2. 调用接口类通过xml配置纳入Spring进行管理
  3. 定时任务暂时使用SpringTask
  • 股价获取接口
package com.xxx.oil.task;

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

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;

import com.xxx.oil.service.OilService;
import com.xxx.oil.service.StockService;

/**
 * 定时任务使用,已注册在conf/plugin/task/context-task.xml
 */
public class SipcTimerTask {
    private static final Logger logger = LoggerFactory.getLogger(SipcTimerTask.class);

    public SipcTimerTask() {

    }
    /**
      * 获取石化股价
      */
    public void saveStockTask() {
        service.saveStock();
    }

    /**
     * 获取原油价格
     */
    public void saveOilPriceTask() {
        try {
            oilService.setBrentOil();
        } catch (IOException e) {
            logger.error("定时任务出错:获取布伦特原油价格出错!");
            e.printStackTrace();
        }
        try {
            oilService.setNYOil();
        } catch (IOException e) {
            logger.error("定时任务出错:获取布伦特原油价格出错!");
            e.printStackTrace();
        }
    }

    @Autowired
    private StockService service;
    @Autowired
    private OilService oilService;
}
  • 配置文件
<?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:util="http://www.springframework.org/schema/util"
    xmlns:task="http://www.springframework.org/schema/task"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
        http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd">

    <!-- 获取石化股票和原油价格等信息定时任务 -->
    <bean id="sipcTimerTask" class="com.xxx.oil.task.SipcTimerTask"/>
    
    <task:scheduled-tasks>
        <!-- cron值编写
            1.cron共有6个必选和1个可选域,分别是(秒,分,时,日期,月份,星期,年(可选域))
            2.cron允许的值,
                秒(0-59),分(0-59),时(0-12),日期(1-31),月份(1-12或者JAN-DEC),星期(1-7或者SUN-SAT),年( 留空或者 1970-2099 )
            3.cron允许的连接字符,(- * / )这三个基本上都有,(?)只有日期和星期使用,解决两个域使用时值冲突的问题,日期和星期只用一种
                ( L C )只在日期星期使用,L月的最后一天,C指定一个日历,(W)只在日期中使用,表示工作日,(#)只在星期中使用,表示指定具体星期例如(3#2)本月第二个星期的周二(3表示周二)
            4.(- * /)-表示between..and..,*表示per,/表示增量,例如(在分钟域0 0-5 12 * * ?)表示每天的12:00到12:05每分钟触发,在秒域0/15表示每分钟0,15,30,45触发
         -->
        <task:scheduled ref="sipcTimerTask" method="saveStockTask" cron="0 0/15 9-16 ? * 1-5" />
        <!-- 每15分钟更新一次 -->
        <task:scheduled ref="sipcTimerTask" method="saveOilPriceTask" cron="0 0/15 * ? * 1-7" />
    </task:scheduled-tasks>


</beans>
  • 启动项目就能启动定时任务,到此结束,是不是很简单
    项目中还是用到的Quartz,有机会再整理有关Quartz的使用和配置

相关文章

  • SpringTask

    项目有定时任务的需求,对比了Timer、Quartz和SpringTask之后使用了SpringTask来配置定时...

  • SpringTask

    任务调度 SpringTask 常见的任务框架有Quartz和SpringTask,注意Cron表达式在者两种框...

  • SpringTimer

    依赖的jar包 JavaTimer (原生的方式) 基于spring的timer SpringTask TestM...

  • 定时任务

    SpringTask 使用 在SpringBoot的引导类上加开启定时任务的注解@EnableScheduling...

  • springtask定时发送邮件

    springtask定时发送邮件 开启设置 按照 打开QQ邮箱->设置->开启服务POP3/SMTP开启->获取...

  • SpringTask任务案例源码实现

    前言 一般来说,无论是生活中或者项目中都会用到定时任务。比如我自己来说,每天晚上写一篇博客,当然这个任务的时间点可...

  • springboot2.x | 定时任务

    简介:基与 springTask进行定时任务 1.启动类添加注解 2.定义一个scheduled服务 3.@sch...

  • Spring Task的坑

    背景:因用到定时任务,选了简单的springTask,使用中发现Task被执行两次。 解决方案:参考了几篇博文:这...

  • 运用SpringTask方式定时发送邮件

    1.首先配置QQ邮箱->设置->账户->开启服务POP3/SMTP开启->获取授权码image.png 2.添加p...

  • SpringTask定时任务实例

    在对比几种做法之后,找到了一种较容易的设置定时任务的方式 1.定时任务注解@EnableScheduling 在启...

网友评论

      本文标题:SpringTask

      本文链接:https://www.haomeiwen.com/subject/jqmslxtx.html