From f3ee1951836deced3f417c987792f74f879b1e65 Mon Sep 17 00:00:00 2001 From: DELL Date: Mon, 8 Apr 2024 12:41:24 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E6=96=B0=E5=A2=9E=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E7=9B=91=E6=B5=8B=EF=BC=8C=E5=AF=B9=E6=9C=AA?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E5=9B=BE=E7=89=87=E9=87=8D=E6=96=B0=E6=94=BE?= =?UTF-8?q?=E5=85=A5=E9=98=9F=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ocr/thread/ImageDownloadMonitoring.java | 74 +++++++++++++++++++ .../jyjz/xiaoyao/ocr/thread/TaskRunner.java | 2 + 2 files changed, 76 insertions(+) create mode 100644 jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/ImageDownloadMonitoring.java 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 new file mode 100644 index 00000000..8c62652c --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/ImageDownloadMonitoring.java @@ -0,0 +1,74 @@ +package cn.jyjz.xiaoyao.ocr.thread; + +import cn.jyjz.xiaoyao.common.base.util.SpringUtils; +import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture; +import cn.jyjz.xiaoyao.ocr.service.OcrPictureService; +import cn.jyjz.xiaoyao.ocr.thread.entity.PictureImgToLocalEntity; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; + +import java.util.List; +import java.util.concurrent.*; +@Slf4j +public class ImageDownloadMonitoring { + + @Autowired + private OcrPictureService ocrPictureService; + + private static Logger logger = LoggerFactory.getLogger(TaskQueue.class); + + /** + * 启动任务 图片下载监测 + * + * @return + */ + public boolean startImageDownloadMonitoring() { + Runnable runnable = new Runnable() { + @SneakyThrows + @Override + public void run() { + OcrPictureService ocrPictureService = SpringUtils.getBean("ocrPictureService"); + logger.debug("图片下载监测中..."); + + while (true) { + try { + // 查询数据库中local_picture_url字段为null的图片数据 + LambdaQueryWrapper ocrPictureLambdaQueryWrapper = new LambdaQueryWrapper<>(); + ocrPictureLambdaQueryWrapper.isNull(OcrPicture::getLocalpictrueurl); + List ocrPictureList = ocrPictureService.list(ocrPictureLambdaQueryWrapper); + 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("添加队列成功"); + } + } + // 等待一段时间再继续检查 + Thread.sleep(600000); + } catch (Exception e) { + logger.error("图片下载监测出错{}", e.getMessage()); + Thread.sleep(5000); + } + } + } + }; + Thread thread = new Thread(runnable); + thread.start(); + return true; + } +} 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 039b463b..ba5b9f60 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 @@ -17,5 +17,7 @@ public class TaskRunner implements CommandLineRunner { TaskThreadPool taskThreadPool = new TaskThreadPool(); taskThreadPool.startPictureDisposePull(); taskThreadPool.startPictureImgToLocalPull(); + ImageDownloadMonitoring imageDownloadMonitoring = new ImageDownloadMonitoring(); + imageDownloadMonitoring.startImageDownloadMonitoring(); } }