Skip to content

TaskManager submitTask 不打印异常问题 #31

@fgdsfgfdsgdsfgsdfg

Description

@fgdsfgfdsgdsfgsdfg

操作:
知识库数据导入
现象:
无异常、文件正常上传至存储中,未切片
原因:
个人问题,由于Minio存储桶设置了private导致文件无法下载
问题:
在调用/docs/{knowledgeId}接口时上传文件,上传文件无响应,文档没有正确的被embeddingService.embedDocsSlice(data, oss.getUrl())这个方法消费,由于使用了Callable,所以,必须要在Callable.get()的时候才能正确的显示流程中的异常信息
预期:
应该有一个线程去轮询消费吧?或者这个地方这个异步任务应该有结果被查询才正常吧
个人疑问
embeddingDocs方法中使用了req.getUrl()去下载文件是不是不太合理,上传文件用了fileStorageService.of(file)
.setPath(DateUtil.format(new Date(), DatePattern.PURE_DATE_PATTERN))
.upload(),但是下载却用普通的url
在EmbeddingEndpoint中docs方法里是不是使用类似于下面这种方法更合适?或者文件根本不走下载,直接给那个MultipartFile复用一下MultipartFile.getResource().getURL()

    String userId = String.valueOf(AuthUtil.getUserId());
    AigcOss oss = aigcOssService.upload(file, userId);
    AigcDocs data = new AigcDocs()
            .setName(oss.getOriginalFilename())
            .setSliceStatus(false)
            .setUrl(oss.getUrl())
            .setSize(file.getSize())
            .setType(EmbedConst.ORIGIN_TYPE_UPLOAD)
            .setKnowledgeId(knowledgeId);
    FileInfo fileInfo = BeanUtil.copyProperties(oss, FileInfo.class);
    File tempFile = FileUtil.createTempFile();
    fileStorageService.download(fileInfo).inputStream(inputStream ->
            FileUtil.writeFromStream(inputStream, tempFile));
    aigcKnowledgeService.addDocs(data);
    TaskManager.submitTask(userId, Executors.callable(() -> {
        embeddingService.embedDocsSlice(data, oss.getUrl());
    }));
    return R.ok();

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions