Jelajahi Sumber

增加指定实时更新等待时间间隔的接口

sunyj 9 tahun lalu
induk
melakukan
54ba6727b1

+ 9 - 2
search-console/src/main/java/com/uas/search/console/controller/IndexController.java

@@ -32,8 +32,8 @@ public class IndexController {
 
 	@RequestMapping("/listen/start")
 	@ResponseBody
-	public String startListen() {
-		return aqListener.start();
+	public String startListen(Long waitInterval) {
+		return aqListener.start(waitInterval);
 	}
 
 	@RequestMapping("/listen/stop")
@@ -41,6 +41,13 @@ public class IndexController {
 	public String stopListen() {
 		return aqListener.stop();
 	}
+	
+	@RequestMapping("/listen/restart")
+	@ResponseBody
+	public String restartListen(Long waitInterval) {
+		aqListener.stop();
+		return aqListener.start(waitInterval);
+	}
 
 	@RequestMapping("/maintain")
 	@ResponseBody

+ 7 - 3
search-console/src/main/java/com/uas/search/console/jms/AQListener.java

@@ -50,9 +50,11 @@ public class AQListener {
 	/**
 	 * 开启实时更新索引
 	 * 
+	 * @param waitInterval
+	 *            每次接收到jms消息后等待的时间(秒)
 	 * @return 开启成功与否的提示信息
 	 */
-	public String start() {
+	public String start(final Long waitInterval) {
 		String message = "";
 		if (isRunning()) {
 			message = "已存在运行的索引实时更新服务";
@@ -77,8 +79,10 @@ public class AQListener {
 				@Override
 				public void onMessage(Message message) {
 					try {
-						// 等待30秒,为了等待数据表变动的事务提交
-						Thread.sleep(30000);
+						if (waitInterval != null) {
+							// 等待30秒,为了等待数据表变动的事务提交
+							Thread.sleep(waitInterval * 1000);
+						}
 					} catch (InterruptedException e1) {
 						e1.printStackTrace();
 					}

+ 0 - 1
search-console/src/main/java/com/uas/search/console/service/impl/IndexServiceImpl.java

@@ -157,7 +157,6 @@ public class IndexServiceImpl implements IndexService {
 		} catch (InterruptedException e) {
 			e.printStackTrace();
 		} finally {
-			aqListener.start();
 			creatingIndex = false;
 			indexWriterManager.release();
 		}

+ 2 - 1
search-console/src/main/webapp/WEB-INF/views/console.html

@@ -77,8 +77,9 @@
 				<h2>3. 索引修改</h2>
 				<ol>
 					<li><a target="_blank">index/create</a></li>
-					<li><a target="_blank">index/listen/start</a></li>
+					<li><a target="_blank">index/listen/start?waitInterval=10</a></li>
 					<li><a target="_blank">index/listen/stop</a></li>
+					<li><a target="_blank">index/listen/restart</a></li>
 					<li><a target="_blank">index/maintain?tableName=product$kind&ids=12,328,343</a></li>
 				</ol>
 			</div>