REQ-3540: 添加租户时直接激活

This commit is contained in:
yanglin 2025-03-19 10:24:04 +08:00
parent b99d7be9fc
commit b6e7b4001d

View File

@ -72,13 +72,14 @@ public class FileDatabaseService {
private final AsyncUtils asyncUtils;
private final DocLogDao docLogDao;
/**
* 不加事务
*/
public void addActivatedWorkspace(FileDatabaseAddWorkspaceRequest request) {
docLogDao.logRequest("addActivatedWorkspace", request.getWorkspaceId(), request);
IndexNode templateRoot = checkTemplateDatabase(request.getTemplateDatabaseCode());
FileDatabase db = transaction.execute(unused -> {
docLogDao.logRequest("addActivatedWorkspace", request.getWorkspaceId(), request);
return addWorkspace0(request);
});
asyncCopySubtree(db, templateRoot, null);
Future<?> future = asyncCopySubtree(addWorkspace0(request), templateRoot, null);
asyncUtils.getOrTimeout(future, "添加等待超时, 激活任务在后台运行, 请稍后刷新查看");
}
private FileDatabase addWorkspace0(FileDatabaseAddWorkspaceRequest request) {
@ -103,6 +104,9 @@ public class FileDatabaseService {
return fileDatabaseDao.findOrNull(db.getCode());
}
/**
* 不加事务
*/
public void active(FileDatabaseActiveRequest request) {
request.checkExpiredDate();
docLogDao.logRequest("active", request.getCode(), request);
@ -110,11 +114,12 @@ public class FileDatabaseService {
if (db.isActivated())
return;
IndexNode templateRoot = checkTemplateDatabase(db.getTemplateDatabaseCode());
asyncCopySubtree(db, templateRoot, () -> updateCapacity(request).update());
Future<?> future = asyncCopySubtree(db, templateRoot, () -> updateCapacity(request).update());
asyncUtils.getOrTimeout(future, "激活等待超时, 激活任务在后台运行, 请稍后刷新查看");
}
private void asyncCopySubtree(FileDatabase db, IndexNode templateRoot, Runnable nullablePostProcessor) {
Future<?> future = indexManager.async(() -> {
private Future<?> asyncCopySubtree(FileDatabase db, IndexNode templateRoot, Runnable nullablePostProcessor) {
return indexManager.async(() -> {
// don't inline in transaction
CopiedOssFiles copiedOssFiles = indexManager.copySubtreeOssFiles(templateRoot);
transaction.executeWithoutResult(unused -> {
@ -127,7 +132,6 @@ public class FileDatabaseService {
nullablePostProcessor.run();
});
});
asyncUtils.getOrTimeout(future, "激活等待超时, 激活任务在后台运行, 请稍后刷新查看");
}
private IndexNode checkTemplateDatabase(String templateDatabaseCode) {