REQ-3540: 解决依赖问题
This commit is contained in:
parent
94948ef38b
commit
2c2b025c8f
@ -79,7 +79,7 @@ public class FileDatabaseService {
|
||||
IndexNode templateRoot = checkTemplateDatabaseNode(request.getTemplateDatabaseCode());
|
||||
FileDatabase db = transaction.execute(unused -> addWorkspace0(request));
|
||||
Future<?> future = asyncCopySubtree(db, templateRoot, null);
|
||||
asyncUtils.getOrTimeout(future, "添加等待超时, 添加任务在后台运行, 请稍后刷新查看");
|
||||
asyncUtils.getOrTimeout(future, "添加租户");
|
||||
}
|
||||
|
||||
private FileDatabase addWorkspace0(FileDatabaseAddWorkspaceRequest request) {
|
||||
@ -115,7 +115,7 @@ public class FileDatabaseService {
|
||||
return;
|
||||
IndexNode templateRoot = checkTemplateDatabaseNode(db.getTemplateDatabaseCode());
|
||||
Future<?> future = asyncCopySubtree(db, templateRoot, () -> updateCapacity(request).update());
|
||||
asyncUtils.getOrTimeout(future, "激活等待超时, 激活任务在后台运行, 请稍后刷新查看");
|
||||
asyncUtils.getOrTimeout(future, "激活");
|
||||
}
|
||||
|
||||
private Future<?> asyncCopySubtree(FileDatabase db, IndexNode templateRoot, Runnable nullablePostProcessor) {
|
||||
|
||||
@ -81,14 +81,14 @@ public class FileTemplateApiController implements FileTemplateApi {
|
||||
public CommonResponse<String> copy(CopyNodeRequest request) {
|
||||
log.info("copy request:{}", request);
|
||||
Future<IndexNode> future = indexManager.asyncCopy(request.getCode(), request.getDestParentCode());
|
||||
return CommonResponse.success(asyncUtils.getOrTimeout(future, "拷贝等待超时, 任务在后台运行, 请稍后刷新查看").getCode());
|
||||
return CommonResponse.success(asyncUtils.getOrTimeout(future, "拷贝").getCode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<String> move(MoveNodeRequest request) {
|
||||
log.info("move request:{}", request);
|
||||
Future<IndexNode> future = indexManager.asyncMove(request.getCode(), request.getDestParentCode());
|
||||
return CommonResponse.success(asyncUtils.getOrTimeout(future, "移动等待超时, 任务在后台运行, 请稍后刷新查看").getCode());
|
||||
return CommonResponse.success(asyncUtils.getOrTimeout(future, "移动").getCode());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -4,8 +4,6 @@ package cn.axzo.nanopart.doc.file.templatedb;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
import cn.axzo.nanopart.doc.api.templatedb.domain.TemplateDatabaseInfo;
|
||||
import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseSearchRequest;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import cn.axzo.basics.common.BeanMapper;
|
||||
@ -18,18 +16,20 @@ import cn.axzo.nanopart.doc.api.index.request.IndexNodeSearchRequest;
|
||||
import cn.axzo.nanopart.doc.api.index.request.MoveNodeRequest;
|
||||
import cn.axzo.nanopart.doc.api.index.request.RenameNodeRequest;
|
||||
import cn.axzo.nanopart.doc.api.templatedb.TemplateDatabaseApi;
|
||||
import cn.axzo.nanopart.doc.api.templatedb.domain.TemplateDatabaseInfo;
|
||||
import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseCreateDatabaseRequest;
|
||||
import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseCreateDirRequest;
|
||||
import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseCreateFileRequest;
|
||||
import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseGetDatabaseOrDirInfoRequest;
|
||||
import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseSearchRequest;
|
||||
import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseUpdateDatabaseOrDirInfoRequest;
|
||||
import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseUploadFileRequest;
|
||||
import cn.axzo.nanopart.doc.api.templatedb.response.TemplateDatabaseGetDatabaseOrDirInfoResponse;
|
||||
import cn.axzo.nanopart.doc.entity.IndexNode;
|
||||
import cn.axzo.nanopart.doc.file.index.IndexManager;
|
||||
import cn.axzo.nanopart.doc.file.index.IndexQueryService;
|
||||
import cn.axzo.nanopart.doc.utils.IndexNodeTreeUtils;
|
||||
import cn.axzo.nanopart.doc.utils.AsyncUtils;
|
||||
import cn.axzo.nanopart.doc.utils.IndexNodeTreeUtils;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import cn.azxo.framework.common.model.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -85,14 +85,14 @@ public class TemplateDatabaseApiController implements TemplateDatabaseApi {
|
||||
public CommonResponse<String> copy(CopyNodeRequest request) {
|
||||
log.info("copy request:{}", request);
|
||||
Future<IndexNode> future = indexManager.asyncCopy(request.getCode(), request.getDestParentCode());
|
||||
return CommonResponse.success(asyncUtils.getOrTimeout(future, "拷贝等待超时, 拷贝任务仍在后台运行, 请稍后刷新查看").getCode());
|
||||
return CommonResponse.success(asyncUtils.getOrTimeout(future, "拷贝").getCode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<String> move(MoveNodeRequest request) {
|
||||
log.info("move request:{}", request);
|
||||
Future<IndexNode> future = indexManager.asyncMove(request.getCode(), request.getDestParentCode());
|
||||
return CommonResponse.success(asyncUtils.getOrTimeout(future, "移动等待超时, 移动任务仍在后台运行, 请稍后刷新查看").getCode());
|
||||
return CommonResponse.success(asyncUtils.getOrTimeout(future, "移动").getCode());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -1,18 +1,19 @@
|
||||
|
||||
package cn.axzo.nanopart.doc.utils;
|
||||
|
||||
import static cn.axzo.nanopart.doc.api.util.BizAssertions.fail;
|
||||
|
||||
import java.util.concurrent.Future;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
import org.springframework.dao.CannotAcquireLockException;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import cn.axzo.nanopart.doc.config.DocProps;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import static cn.axzo.nanopart.doc.api.util.BizAssertions.fail;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@ -23,13 +24,19 @@ public class AsyncUtils {
|
||||
|
||||
private final DocProps docProps;;
|
||||
|
||||
public <T> T getOrTimeout(Future<T> future, String timeoutMessage) {
|
||||
public <T> T getOrTimeout(Future<T> future, String op) {
|
||||
try {
|
||||
return future.get(docProps.getAsyncTimeoutSeconds(), TimeUnit.SECONDS);
|
||||
}
|
||||
catch (CannotAcquireLockException e) {
|
||||
String message = String.format("%s等待超时, 可能正在移动节点, 请稍后刷新页面重试", op);
|
||||
log.warn(message, e);
|
||||
throw fail(message);
|
||||
}
|
||||
catch (TimeoutException e) {
|
||||
log.warn(timeoutMessage, e);
|
||||
throw fail(timeoutMessage);
|
||||
String message = String.format("%s等待超时, 任务在后台运行, 请稍后刷新查看", op);
|
||||
log.warn(message, e);
|
||||
throw fail(message);
|
||||
}
|
||||
catch (Exception e) {
|
||||
log.warn(e.getMessage(), e);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user