一、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);
}
}
}