Просмотр исходного кода

修改判断消息队列是否为空的方法;
实时更新索引时捕获所有异常,以SearchException方式抛出

sunyj 9 лет назад
Родитель
Сommit
26f9eedea4

+ 19 - 15
search-console-b2b/src/main/java/com/uas/search/console/b2b/service/impl/IndexServiceImpl.java

@@ -442,25 +442,29 @@ public class IndexServiceImpl implements IndexService {
 			return null;
 		}
 		List<Object> maintainedObjects = new ArrayList<>();
-		// 新增、更新索引
-		if (parsedQueueMessage.isInsert() || parsedQueueMessage.isUpdate()) {
-			for (Object object : objects) {
-				Object maintainedObject = update(object);
-				if (maintainedObject != null) {
-					maintainedObjects.add(maintainedObject);
+		try {
+			// 新增、更新索引
+			if (parsedQueueMessage.isInsert() || parsedQueueMessage.isUpdate()) {
+				for (Object object : objects) {
+					Object maintainedObject = update(object);
+					if (maintainedObject != null) {
+						maintainedObjects.add(maintainedObject);
+					}
 				}
 			}
-		}
-		// 删除索引
-		else if (parsedQueueMessage.isDelete()) {
-			for (Object object : objects) {
-				Object maintainedObject = delete(object);
-				if (maintainedObject != null) {
-					maintainedObjects.add(maintainedObject);
+			// 删除索引
+			else if (parsedQueueMessage.isDelete()) {
+				for (Object object : objects) {
+					Object maintainedObject = delete(object);
+					if (maintainedObject != null) {
+						maintainedObjects.add(maintainedObject);
+					}
 				}
+			} else {
+				throw new SearchException("message parsing failed!");
 			}
-		} else {
-			throw new SearchException("message parsing failed!");
+		} catch (Throwable e) {
+			throw new SearchException(e).setDetailedMessage(e);
 		}
 		return maintainedObjects;
 	}

+ 2 - 1
search-console-b2b/src/main/java/com/uas/search/console/b2b/service/impl/RealTimeUpdateMonitorServiceImpl.java

@@ -8,6 +8,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import com.uas.message.sms.service.SmsService;
 import com.uas.search.b2b.model.SPage;
@@ -100,7 +101,7 @@ public class RealTimeUpdateMonitorServiceImpl implements RealTimeUpdateMonitorSe
 	private boolean workWell() throws SQLRecoverableException {
 		SPage<LuceneQueueMessage> sPage = luceneQueueMessageDao.findAll(1, 1, null);
 		// 如果消息队列中没有消息,说明没有等待更新的消息
-		if (sPage.getTotalElement() == 0) {
+		if (CollectionUtils.isEmpty(sPage.getContent())) {
 			return true;
 		}
 		LuceneQueueMessage luceneQueueMessage = sPage.getContent().get(0);

+ 19 - 15
search-console/src/main/java/com/uas/search/console/service/impl/IndexServiceImpl.java

@@ -562,25 +562,29 @@ public class IndexServiceImpl implements IndexService {
 			return null;
 		}
 		List<Object> maintainedObjects = new ArrayList<>();
-		// 新增、更新索引
-		if (parsedQueueMessage.isInsert() || parsedQueueMessage.isUpdate()) {
-			for (Object object : objects) {
-				Object maintainedObject = update(object);
-				if (maintainedObject != null) {
-					maintainedObjects.add(maintainedObject);
+		try {
+			// 新增、更新索引
+			if (parsedQueueMessage.isInsert() || parsedQueueMessage.isUpdate()) {
+				for (Object object : objects) {
+					Object maintainedObject = update(object);
+					if (maintainedObject != null) {
+						maintainedObjects.add(maintainedObject);
+					}
 				}
 			}
-		}
-		// 删除索引
-		else if (parsedQueueMessage.isDelete()) {
-			for (Object object : objects) {
-				Object maintainedObject = delete(object);
-				if (maintainedObject != null) {
-					maintainedObjects.add(maintainedObject);
+			// 删除索引
+			else if (parsedQueueMessage.isDelete()) {
+				for (Object object : objects) {
+					Object maintainedObject = delete(object);
+					if (maintainedObject != null) {
+						maintainedObjects.add(maintainedObject);
+					}
 				}
+			} else {
+				throw new SearchException("message parsing failed!");
 			}
-		} else {
-			throw new SearchException("message parsing failed!");
+		} catch (Throwable e) {
+			throw new SearchException(e).setDetailedMessage(e);
 		}
 		return maintainedObjects;
 	}

+ 3 - 2
search-console/src/main/java/com/uas/search/console/service/impl/RealTimeUpdateMonitorServiceImpl.java

@@ -8,6 +8,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import com.uas.message.sms.service.SmsService;
 import com.uas.search.console.SystemProperties;
@@ -96,10 +97,10 @@ public class RealTimeUpdateMonitorServiceImpl implements RealTimeUpdateMonitorSe
 	 * 
 	 * @return true 如果运行良好
 	 */
-	private boolean workWell()  throws SQLRecoverableException {
+	private boolean workWell() throws SQLRecoverableException {
 		SPage<LuceneQueueMessage> sPage = luceneQueueMessageDao.findAll(1, 1, null);
 		// 如果消息队列中没有消息,说明没有等待更新的消息
-		if (sPage.getTotalElement() == 0) {
+		if (CollectionUtils.isEmpty(sPage.getContent())) {
 			return true;
 		}
 		LuceneQueueMessage luceneQueueMessage = sPage.getContent().get(0);