Browse Source

删除单独创建单据索引的接口;删除clearDir、reset等不再使用的方法

sunyj 9 years ago
parent
commit
26edc1edd8

+ 0 - 6
search-console/src/main/java/com/uas/search/console/controller/IndexController.java

@@ -48,12 +48,6 @@ public class IndexController {
 		return aqListener.stop();
 	}
 
-	@RequestMapping("/create/ordersAndPurchases")
-	@ResponseBody
-	public String createOrderIndexes() {
-		return "created " + indexService.createOrderAndPurchaseIndexes();
-	}
-
 	@RequestMapping("/maintain")
 	@ResponseBody
 	public String maintainIndexes(String tableName, String ids) {

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

@@ -78,7 +78,7 @@ public class AQListener {
 				public void onMessage(Message message) {
 					try {
 						// 等待30秒,为了等待数据表变动的事务提交
-						Thread.sleep(30000);
+						Thread.sleep(5000);
 					} catch (InterruptedException e1) {
 						e1.printStackTrace();
 					}

+ 0 - 7
search-console/src/main/java/com/uas/search/console/service/IndexService.java

@@ -39,13 +39,6 @@ public interface IndexService {
 	 */
 	public void delete(Object obj);
 
-	/**
-	 * 创建销售单、采购单及相应的发货单、明细索引
-	 * 
-	 * @return 消耗的时间ms
-	 */
-	public Long createOrderAndPurchaseIndexes();
-
 	/**
 	 * 用于维护出问题的索引
 	 * 

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

@@ -139,15 +139,8 @@ public class IndexServiceImpl implements IndexService {
 			aqListener.stop();
 		}
 
-		// 清除旧索引
-		// File file = new File(SearchConstants.INDEX_DIR);
-		// if (file.isDirectory()) {
-		// clearDir(file);
-		// }
-
 		try {
 			indexWriter = indexWriterManager.get();
-			// 删除旧索引
 			logger.info("正在清理旧索引...");
 			indexWriter.deleteAll();
 			indexWriter.commit();
@@ -213,7 +206,6 @@ public class IndexServiceImpl implements IndexService {
 			creatingIndex = false;
 			indexWriterManager.release();
 		}
-
 		return null;
 	}
 
@@ -350,62 +342,6 @@ public class IndexServiceImpl implements IndexService {
 		return size;
 	}
 
-	@Override
-	// TODO delete
-	public Long createOrderAndPurchaseIndexes() {
-		try {
-			indexWriter = indexWriterManager.get();
-			Long startTime = new Date().getTime();
-
-			Long orderSize = createOrderIndexes();
-			Long orderTime = new Date().getTime();
-			logger.info("创建销售单索引: " + orderSize + "条,耗时 " + (orderTime - startTime) + " ms\n");
-
-			Long orderDetailSize = createOrderDetailIndexes();
-			Long orderDetailTime = new Date().getTime();
-			logger.info("创建销售单明细索引: " + orderDetailSize + "条,耗时 " + (orderDetailTime - orderTime) + " ms\n");
-
-			Long orderInvoiceSize = createOrderInvoiceIndexes();
-			Long orderInvoiceTime = new Date().getTime();
-			logger.info("创建销售单发货单索引: " + orderInvoiceSize + "条,耗时 " + (orderInvoiceTime - orderDetailTime) + " ms\n");
-
-			Long orderInvoiceDetailSize = createOrderInvoiceDetailIndexes();
-			Long orderInvoiceDetailTime = new Date().getTime();
-			logger.info("创建销售单发货单明细索引: " + orderInvoiceDetailSize + "条,耗时 "
-					+ (orderInvoiceDetailTime - orderInvoiceTime) + " ms\n");
-
-			Long purchaseSize = createPurchaseIndexes();
-			Long purchaseTime = new Date().getTime();
-			logger.info("创建采购单索引: " + purchaseSize + "条,耗时 " + (purchaseTime - orderInvoiceDetailTime) + " ms\n");
-
-			Long purchaseDetailSize = createPurchaseDetailIndexes();
-			Long purchaseDetailTime = new Date().getTime();
-			logger.info("创建采购单明细索引: " + purchaseDetailSize + "条,耗时 " + (purchaseDetailTime - purchaseTime) + " ms\n");
-
-			Long purchaseInvoiceSize = createPurchaseInvoiceIndexes();
-			Long purchaseInvoiceTime = new Date().getTime();
-			logger.info("创建采购单发货单索引: " + purchaseInvoiceSize + "条,耗时 " + (purchaseInvoiceTime - purchaseDetailTime)
-					+ " ms\n");
-
-			Long purchaseInvoiceDetailSize = createPurchaseInvoiceDetailIndexes();
-			Long purchaseInvoiceDetailTime = new Date().getTime();
-			logger.info("创建采购单发货单明细索引: " + purchaseInvoiceDetailSize + "条,耗时 "
-					+ (purchaseInvoiceDetailTime - purchaseInvoiceTime) + " ms\n");
-
-			logger.info("索引创建成功, 共用时间 " + (purchaseInvoiceDetailTime - startTime) + " ms");
-
-			return purchaseInvoiceDetailTime - startTime;
-		} catch (IOException e) {
-			e.printStackTrace();
-		} catch (InterruptedException e) {
-			e.printStackTrace();
-		} finally {
-			indexWriterManager.release();
-		}
-
-		return null;
-	}
-
 	private Long createOrderIndexes() {
 		logger.info("正在创建销售单索引...");
 		List<OrderSimpleInfo> orders = orderDao.findAll();
@@ -563,29 +499,6 @@ public class IndexServiceImpl implements IndexService {
 		return document;
 	}
 
-	/**
-	 * 清空文件夹
-	 * 
-	 * @param dir
-	 */
-	private void clearDir(File dir) {
-		if (dir == null) {
-			return;
-		}
-		if (dir.isDirectory()) {
-			File[] files = dir.listFiles();
-			for (File f : files) {
-				clearDir(f);
-			}
-		}
-		dir.delete();
-		try {
-			logger.info("Deleted " + dir.getCanonicalPath());
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-	}
-
 	@Override
 	public void save(Object obj) {
 		if (obj == null) {

+ 3 - 43
search-console/src/main/java/com/uas/search/console/support/IndexWriterManager.java

@@ -44,52 +44,12 @@ public class IndexWriterManager {
 	 * 释放对indexWriter的使用
 	 */
 	public synchronized void release() {
-		/*
-		 * 对索引的更改一般不会很频繁,每次更改后关闭IndexWriter可能比一直打开开销更小
-		 * 不关闭的话,多次创建索引会抛出NoSuchFileException异常(IndexWriter保留的是旧信息?未更新?)
-		 */
-		// TODO 测试后删除
-		// 因保存索引后,调用release一直卡在indexWriter.close方法处,所以每次索引更改后不再关闭indexWriter,待测试没有问题才能删除
-		// if (indexWriter != null) {
-		// try {
-		// indexWriter.close();
-		// } catch (IOException e) {
-		// e.printStackTrace();
-		// }
-		// indexWriter = null;
-		// }
+		// indexWriter一直保持打开状态,也只存在一个实例,
+		// indexWriter用完后只是释放对其的占用,不会进行close
+		// TODO close方法有时会卡住(多出现在插入记录之后),暂时还未找到原因
 		doneUsing();
 	}
 
-	/**
-	 * 用于关闭indexWriter,之后通过get方法获取时,会重新打开
-	 * 
-	 * @throws InterruptedException
-	 */
-	//TODO delete
-	public synchronized void reset() throws InterruptedException {
-		System.out.println("reseting");
-		System.out.println("reset startusing");
-		startUsing();
-		System.out.println("reset startused");
-		if (indexWriter != null) {
-			try {
-				System.out.println("reset deleteAlling");
-				indexWriter.deleteAll();
-				System.out.println("reset deleteAlled");
-//				System.out.println("reset startclosing");
-//				indexWriter.close();
-//				System.out.println("reset startclosed");
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-//			indexWriter = null;
-		}
-		System.out.println("reset doneusing");
-		doneUsing();
-		System.out.println("reset doneused");
-	}
-
 	private boolean using = false;
 
 	private synchronized void startUsing() throws InterruptedException {