From f423a12228518ca34b8e380b0515dd01ae91b02e Mon Sep 17 00:00:00 2001
From: 杜洪波 <1074825718@qq.com>
Date: 星期一, 03 十一月 2025 15:52:56 +0800
Subject: [PATCH] 文档借阅调整
---
src/main/java/com/product/file/util/CreateDocumentIndexThread.java | 87 ++++++++++++++++++++++++++++++++-----------
1 files changed, 64 insertions(+), 23 deletions(-)
diff --git a/src/main/java/com/product/file/util/CreateDocumentIndexThread.java b/src/main/java/com/product/file/util/CreateDocumentIndexThread.java
index c1f6c7a..175e729 100644
--- a/src/main/java/com/product/file/util/CreateDocumentIndexThread.java
+++ b/src/main/java/com/product/file/util/CreateDocumentIndexThread.java
@@ -1,6 +1,10 @@
package com.product.file.util;
-import java.util.LinkedList;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.Set;
+
+import org.apache.poi.openxml4j.exceptions.OLE2NotOfficeXmlFileException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -13,22 +17,28 @@
/**
* 娑堟伅鏈嶅姟锛屾坊鍔犳秷鎭紝璇诲彇娑堟伅
- * @author shicf
*
+ * @author shicf
*/
@Component
-public class CreateDocumentIndexThread {
- /**鑷凡瀹炰緥**/
+public class CreateDocumentIndexThread {
+ /**
+ * 鑷凡瀹炰緥
+ **/
private static CreateDocumentIndexThread createDocumentIndexThread;
@Autowired
public FileManagerService fileManagerService;
- /**鍐呴儴绾跨▼**/
- private SendMailThread sendMailThread=null;
+ /**
+ * 鍐呴儴绾跨▼
+ **/
+ private SendMailThread sendMailThread = null;
@Autowired
public LuceneService luceneService;
- /** 鐢熸垚鐨勬柊娑堟伅闃熷垪**/
- private static LinkedList <FieldSetEntity> documentIndexs=new LinkedList<>();
-
+ /**
+ * 鐢熸垚鐨勬柊娑堟伅闃熷垪
+ **/
+ private static LinkedList<FieldSetEntity> documentIndexs = new LinkedList<>();
+
/**
* 闈欐�佸伐鍘傛柟娉� 鑾峰彇褰撳墠瀵硅薄瀹炰緥 澶氱嚎绋嬪畨鍏ㄥ崟渚嬫ā寮�(浣跨敤鍙岄噸鍚屾閿�)
*/
@@ -37,57 +47,88 @@
if (createDocumentIndexThread == null) {
synchronized (CreateDocumentIndexThread.class) {
if (createDocumentIndexThread == null) {
- createDocumentIndexThread=(CreateDocumentIndexThread) SpringBeanUtil.getBean("createDocumentIndexThread");
+ createDocumentIndexThread = (CreateDocumentIndexThread) SpringBeanUtil.getBean("createDocumentIndexThread");
}
}
}
createDocumentIndexThread.start();
return createDocumentIndexThread;
}
+
/**
* 鍚姩缂撳瓨鐨勫埛鏂扮嚎绋�
*/
- public void start() {
- if(sendMailThread ==null || sendMailThread.getState()== Thread.State.TERMINATED ) {
- sendMailThread=new SendMailThread();
+ public void start() {
+ if (sendMailThread == null || sendMailThread.getState() == Thread.State.TERMINATED) {
+ sendMailThread = new SendMailThread();
sendMailThread.start();
SpringMVCContextHolder.getSystemLogger().info("Thread Of Refresh Cache Is Starting.............");
}
}
+
/**
* 鎶婇檮浠朵俊鎭坊鍔犲鍒椾腑
+ *
* @param user
*/
public synchronized void appendAttaInfo(FieldSetEntity documentIndex) {
- if(documentIndex!=null) {
+ if (documentIndex != null) {
documentIndexs.add(documentIndex);
}
}
+
+ //閲嶈瘯鏂囦欢鐨剈uid闆嗗悎
+ private Set<String> retryFileUuids = new HashSet<>();
+
/**
* 鍙栧埛鏂拌〃闃熻〃鐨勭涓�涓�
+ *
* @return
*/
public synchronized void pop() {
- while(!documentIndexs.isEmpty()) {
- FieldSetEntity ff=documentIndexs.pop();
- if(luceneService ==null ) {
- luceneService=(LuceneService) SpringBeanUtil.getBean("luceneService");
+ while (!documentIndexs.isEmpty()) {
+ FieldSetEntity ff = documentIndexs.pop();
+ if (luceneService == null) {
+ luceneService = (LuceneService) SpringBeanUtil.getBean("luceneService");
}
- ff.setValue("file", fileManagerService.getFile(ff.getString("attachment_uuid")));
- luceneService.createdIndex(ff);
+ try {
+ ff.setValue("file", fileManagerService.getFile(ff.getString("attachment_uuid")));
+ } catch (Exception e) {
+ if (retryFileUuids.contains(ff.getString("attachment_uuid"))) {
+ //閲嶈瘯杩囩殑鏂囦欢涓嶅啀閲嶈瘯,鍒犻櫎闃熷垪涓殑鏂囦欢
+ retryFileUuids.remove(ff.getString("attachment_uuid"));
+ continue;
+ } else {
+ retryFileUuids.add(ff.getString("attachment_uuid"));
+ //娣诲姞鍒伴槦鍒楃殑鏈�鍚�
+ appendAttaInfo(ff);
+ continue;
+ }
+ }
+ try {
+
+ luceneService.createdIndex(ff);
+ } catch (OLE2NotOfficeXmlFileException e) {
+ e.printStackTrace();
+ SpringMVCContextHolder.getSystemLogger().error(e);
+ } catch (Exception e) {
+ SpringMVCContextHolder.getSystemLogger().error(e);
+ e.printStackTrace();
+ }
}
}
+
/**
* 鍐呴儴绾跨▼锛屽畾鏃跺埛鏂扮紦瀛�
- * @author shicf
*
+ * @author shicf
*/
- class SendMailThread extends Thread {
+ class SendMailThread extends Thread {
@Override
public void run() {
try {
- while(true) {
+ while (true) {
sleep(2000);// 鎵ц闂撮殧2s
pop();
}
--
Gitblit v1.9.2