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

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions