Browse Source

不定时监控实时更新的异常情况

sunyj 8 years ago
parent
commit
ab025ce661

+ 0 - 6
src/main/java/com/uas/search/Application.java

@@ -1,7 +1,6 @@
 package com.uas.search;
 
 import com.uas.search.jms.JmsListener;
-import com.uas.search.service.RealTimeUpdateMonitorService;
 import com.uas.search.util.ContextUtils;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -37,11 +36,6 @@ public class Application {
 	public static void startTask() {
 		SystemProperties systemProperties = ContextUtils.getBean(SystemProperties.class);
 		if (systemProperties.isTaskAutoStart()) {
-			// 定时监控实时更新异常情况
-			RealTimeUpdateMonitorService realTimeUpdateMonitorService = ContextUtils
-					.getBean(RealTimeUpdateMonitorService.class);
-			realTimeUpdateMonitorService.newTask();
-
 			JmsListener jmsListener = ContextUtils.getBean(JmsListener.class);
 			jmsListener.start(null);
 		}

+ 0 - 19
src/main/java/com/uas/search/service/RealTimeUpdateMonitorService.java

@@ -1,19 +0,0 @@
-package com.uas.search.service;
-
-import com.uas.search.schedule.TaskInformation;
-
-/**
- * 定时监控实时更新异常情况
- * 
- * @author sunyj
- * @since 2016年12月19日 下午3:29:20
- */
-public interface RealTimeUpdateMonitorService {
-
-	/**
-	 * 创建定时任务,监控实时更新异常情况
-	 * 
-	 * @return
-	 */
-	public TaskInformation newTask();
-}

+ 0 - 100
src/main/java/com/uas/search/service/impl/RealTimeUpdateMonitorServiceImpl.java

@@ -1,100 +0,0 @@
-package com.uas.search.service.impl;
-
-import com.uas.search.constant.model.SPage;
-import com.uas.search.jms.JmsListener;
-import com.uas.search.jms.LuceneMessage;
-import com.uas.search.schedule.TaskInformation;
-import com.uas.search.schedule.Executable;
-import com.uas.search.schedule.TaskService;
-import com.uas.search.jms.LuceneMessageService;
-import com.uas.search.service.RealTimeUpdateMonitorService;
-import com.uas.search.util.CollectionUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.sql.SQLRecoverableException;
-
-/**
- * 创建定时任务,监控实时更新异常情况
- *
- * @author sunyj
- * @since 2016年12月19日 下午3:40:03
- */
-@Service
-public class RealTimeUpdateMonitorServiceImpl implements RealTimeUpdateMonitorService {
-
-    /**
-     * 第一次执行的延迟时间间隔为1秒
-     */
-    private static final long INITIAL_DELAY = 1000;
-    /**
-     * 两次任务之间的等待时间间隔为5分钟
-     */
-    private static final long INTERVAL = 5 * 60 * 1000;
-    @Autowired
-    private TaskService taskService;
-
-    @Autowired
-    private LuceneMessageService luceneMessageService;
-
-    /**
-     * 上次查询时最旧的消息
-     */
-    private LuceneMessage oldestMessage;
-    @Autowired
-    private JmsListener jmsListener;
-    private Logger logger = LoggerFactory.getLogger(getClass());
-
-    @Override
-    public TaskInformation newTask() {
-        String title = "监控实时更新异常情况";
-        Executable command = new Executable() {
-            @Override
-            public String execute() {
-                // 如果实时更新未正常运行,发送警告短信并自动重启实时更新服务
-                try {
-                    if (!workWell()) {
-                        logger.error("实时更新未正常运行");
-                        logger.info("发送警告短信...");
-                        if (jmsListener.isRunning()) {
-                            jmsListener.stop();
-                        }
-                        jmsListener.start(null);
-                        return "异常";
-                    }
-                } catch (SQLRecoverableException e) {
-                    logger.error("", e);
-                    return "数据库连接错误";
-                }
-                return "正常";
-            }
-        };
-        TaskInformation taskInformation = new TaskInformation(title, command, INITIAL_DELAY, INTERVAL, TaskInformation.ScheduleType.FixedDelay);
-        taskService.newTask(taskInformation);
-        return taskInformation;
-    }
-
-    /**
-     * 实时更新服务是否运行良好
-     *
-     * @return true 如果运行良好
-     */
-    private boolean workWell() throws SQLRecoverableException {
-		SPage<LuceneMessage> sPage = luceneMessageService.findAll(1, 1);
-		// 如果消息队列中没有消息,说明没有等待更新的消息
-		if (CollectionUtils.isEmpty(sPage.getContent())) {
-			return true;
-		}
-		LuceneMessage luceneMessage = sPage.getContent().get(0);
-		// 比较上次与本次查询的最旧的消息,如果两者相同,说明实时更新服务出现了问题
-		if (oldestMessage != null && oldestMessage.equals(luceneMessage)) {
-			return false;
-		} else {
-			oldestMessage = luceneMessage;
-			return true;
-		}
-    }
-
-}