From 9f94517852efb51368048e639692f43c63ca8d43 Mon Sep 17 00:00:00 2001 From: shuliYao <1397940314@qq.com> Date: Mon, 8 Apr 2024 13:00:17 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E6=A3=80=E6=B5=8B=E7=A8=8B=E5=BA=8F=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ocr/thread/ImageDownloadMonitoring.java | 23 +++++++++++-------- .../jyjz/xiaoyao/ocr/thread/TaskRunner.java | 7 +++++- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/ImageDownloadMonitoring.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/ImageDownloadMonitoring.java index 8c62652c..55dba0da 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/ImageDownloadMonitoring.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/ImageDownloadMonitoring.java @@ -13,6 +13,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.*; @Slf4j @@ -28,38 +29,42 @@ public class ImageDownloadMonitoring { * * @return */ - public boolean startImageDownloadMonitoring() { + public boolean startImageDownloadMonitoring(String localImagePath) { Runnable runnable = new Runnable() { @SneakyThrows @Override public void run() { OcrPictureService ocrPictureService = SpringUtils.getBean("ocrPictureService"); - logger.debug("图片下载监测中..."); - while (true) { + logger.debug("图片下载监测中..."); try { // 查询数据库中local_picture_url字段为null的图片数据 LambdaQueryWrapper ocrPictureLambdaQueryWrapper = new LambdaQueryWrapper<>(); ocrPictureLambdaQueryWrapper.isNull(OcrPicture::getLocalpictrueurl); - List ocrPictureList = ocrPictureService.list(ocrPictureLambdaQueryWrapper); + List ocrPictureList = new ArrayList<>(); + ocrPictureList = ocrPictureService.list(ocrPictureLambdaQueryWrapper); + logger.debug("待执行下载图片数量:{}",ocrPictureList.size()); for (OcrPicture pictureOne : ocrPictureList) { // 创建 PictureImgToLocalEntity 对象并赋值 PictureImgToLocalEntity entity = new PictureImgToLocalEntity(); entity.setPictureId(pictureOne.getId()); entity.setImgUrl(pictureOne.getImgurl()); String imgurl = pictureOne.getImgurl(); - String localImagePath = "/server/data/images"; entity.setLocalPath(localImagePath + imgurl.substring(imgurl.lastIndexOf("/"))); //本地调试下载地址 // entity.setLocalPath("D:\\server\\data\\images" + imgurl.substring(imgurl.lastIndexOf("/"))); // 将对象添加到下载图片队列中 - boolean isAddedToQueue = TaskQueue.pictureImgToLocalPushData(entity); - if(isAddedToQueue){ - System.out.println("添加队列成功"); + boolean isAddedToQueue = false; + while (!isAddedToQueue) { + isAddedToQueue =TaskQueue.pictureImgToLocalPushData(entity); + if (!isAddedToQueue) { + logger.info("图片下载监测-添加队列失败,等待五秒后继续进行添加,图片id:{}",entity.getPictureId()); + Thread.sleep(5000); + } } } // 等待一段时间再继续检查 - Thread.sleep(600000); + Thread.sleep(60000); } catch (Exception e) { logger.error("图片下载监测出错{}", e.getMessage()); Thread.sleep(5000); diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/TaskRunner.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/TaskRunner.java index ba5b9f60..b5bd8fda 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/TaskRunner.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/TaskRunner.java @@ -1,5 +1,6 @@ package cn.jyjz.xiaoyao.ocr.thread; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; @@ -12,12 +13,16 @@ import org.springframework.stereotype.Component; */ @Component public class TaskRunner implements CommandLineRunner { + + @Value("${ocr.api.wly.localImagePath}") + private String localImagePath; + @Override public void run(String... args) throws Exception { TaskThreadPool taskThreadPool = new TaskThreadPool(); taskThreadPool.startPictureDisposePull(); taskThreadPool.startPictureImgToLocalPull(); ImageDownloadMonitoring imageDownloadMonitoring = new ImageDownloadMonitoring(); - imageDownloadMonitoring.startImageDownloadMonitoring(); + imageDownloadMonitoring.startImageDownloadMonitoring(localImagePath); } }