spring@Scheduled注解执行定时任务(二)

一、XML配置


二、还需要配置跑定时任务的电脑,判断启动该项目的IP与配置中的IP是否一致,一致则跑



三、案例

package com.lifang.callcenter.timtask;
import java.util.List;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.lifang.callcenter.base.service.QuartzTaskBase;

@Component
public class EndWorkTask {
    protected Logger logger = LoggerFactory.getLogger(this.getClass());
    @Autowired
    private  HouseSellResourceTaskQueueReadMapper houseSellResourceTaskQueueReadMapper;

    // 0 0 23 * * ? //每天23:0:0执行退出队列
     @Scheduled(cron = "0 0 23 * * ?")
    public void endWorkMothod() {
        if ( isRunServer()) {
            logger.info("endWorkMothod每天23:0:0执行退出队列。。。。。。。。。");
           
            logger.info("-----------执行退出出租+出售队列完成--------------");
        }
    }

    private  boolean isRunServer() {
        if (QuartzTaskBase.isRun()) {
            return true;
        }
        else {
            logger.info("这台机器不跑定时任务!");
        }
        return false;
    }
}

工具
package com.lifang.callcenter.base.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.lifang.callcenter.utils.Global;
import com.lifang.callcenter.utils.StringUtil;
import com.lifang.utils.WebTool;
public class QuartzTaskBase {
    private static Logger logger = LoggerFactory.getLogger(QuartzTaskBase.class);
    private static boolean runFlag = false;
    public static boolean isRun() {
        return runFlag;
    }
    private static void setRunFlag(boolean runFlag) {
        QuartzTaskBase.runFlag = runFlag;
    }
    static {
        String ip = WebTool.getHostName();
        logger.info("获取本机 机器名 : {}", ip);
        if (Global.QUARTZTASK_RUN_IP.equals(ip)) {
            logger.info("Global.QUARTZTASK_RUN_IP.equals(ip) == {}", Global.QUARTZTASK_RUN_IP.equals(ip));
            setRunFlag(true);
        }
    }
}

读取配置文件工具
package com.lifang.callcenter.utils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public enum Global {
    private static final Logger logger = LoggerFactory.getLogger(Global.class);
     // 指定哪台机器跑定时任务
    public final static String QUARTZTASK_RUN_IP;
    static {
        QUARTZTASK_RUN_IP = Config.get("S_constants.quartzTask_run_IP");
    }

    private static class Config {
         static ConfigMap configMap = new ConfigMap();
        static {
            try {
                configMap = PropertiesHelper.loadProperties("/config.properties");
            }
            catch (Exception e) {
                e.printStackTrace();
                logger.error("The current application of information in the [/config.properties] configuration:current.server");
            }
        }
        public static String get(String key) {
            return configMap.getKV(key, StringUtils.EMPTY);
        }
        public static int _get(String key) {
            return configMap.getKV(key, 0);
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值