• Quartz快速开发


    application-quartz.xml

    需要将本文件加载到IOC容器中

    <?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"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
                      http://www.springframework.org/schema/beans/spring-beans.xsd
                      http://www.springframework.org/schema/context
                      http://www.springframework.org/schema/context/spring-context.xsd">
        <!--开启注解配置支持,否则在ClearImgJob不能使用@Autowired-->
        <context:component-scan base-package="com.xxx"></context:component-scan>
    
        <!-- 注册自定义Job -->
        <bean id="jobDemo" class="com.xxx.job.ClearImgJob"></bean>
        <!-- 注册JobDetail,作用是负责通过反射调用指定的Job -->
        <bean id="jobDetail"
              class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            <!-- 注入目标对象 -->
            <property name="targetObject" ref="jobDemo"/>
            <!-- 注入目标方法 -->
            <property name="targetMethod" value="clearImg"/>
        </bean>
        <!-- 注册一个触发器,指定任务触发的时间 -->
        <bean id="myTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
            <!-- 注入JobDetail -->
            <property name="jobDetail" ref="jobDetail"/>
            <!-- 指定触发的时间,基于Cron表达式(0 0 2 * * ?表示凌晨2点执行) -->
            <!-- 指定触发的时间,基于Cron表达式(0 25 12 * * ?表示12点25分执行) -->
            <property name="cronExpression">
                <value>0 55 17 * * ?</value>
            </property>
        </bean>
        <!-- 注册一个统一的调度工厂,通过这个调度工厂调度任务 -->
        <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
            <!-- 注入多个触发器 -->
            <property name="triggers">
                <list>
                    <ref bean="myTrigger"/>
                </list>
            </property>
        </bean>
    </beans>
    

    java

    package com.xxx.job;
    
    import com.xxx.constant.RedisConstant;
    import com.xxx.utils.QiniuUtils;
    import org.springframework.beans.factory.annotation.Autowired;
    import redis.clients.jedis.JedisPool;
    
    import java.util.Iterator;
    import java.util.Set;
    
    public class ClearImgJob {
        @Autowired
        private JedisPool jedisPool;
        // 清理图片
        public void clearImg(){
            // 计算两个集合的差异
            Set<String> set = jedisPool.getResource().sdiff(RedisConstant.SETMEAL_PIC_RESOURCES, RedisConstant.SETMEAL_PIC_DB_RESOURCES);
            Iterator<String> iterator = set.iterator();
            while (iterator.hasNext()) {
                String img = iterator.next();
                System.out.println("删除图片的名称是:" + img);
                // 删除图片服务器中的多余图片
                QiniuUtils.deleteFileFromQiniu(img);
                // 删除redis中的数据
                jedisPool.getResource().srem(RedisConstant.SETMEAL_PIC_RESOURCES,img);
            }
        }
    }
    
    

    corn 表达式

    在线corn表达式生成器

  • 相关阅读:
    ArcGIS API中FindTask中文搜索无效,服务器编码问题URIEncoding="utf-8"
    ArcGIS10.1 api for Flex开发用于ArcGIS 9.3时QueryTask 'Error #2032'错误的解决方案
    Arcgis API For IOS扩展AGSDynamicLayer新旧版API对比
    谈FME批量自动化数据转换方法
    浅谈城市规划在移动GIS方面的应用发展
    JS-JQuery(JSONP)调用WebService跨域若干技术点
    CAD规划成果入库GIS_SDE转换之分析
    Web前台直接加载GIS格式数据分析
    [转] 基于ArcGISServer实现活动地图标注
    程序员如何利用空闲时间挣零花钱
  • 原文地址:https://www.cnblogs.com/tianwenxin/p/15021646.html
Copyright © 2020-2023  润新知