Skip to content

Commit ff00028

Browse files
authored
fix: clean up website dataset when updating chunk settings (#4420)
1 parent eacc3ba commit ff00028

File tree

3 files changed

+16
-12
lines changed

3 files changed

+16
-12
lines changed

Diff for: packages/service/core/dataset/controller.ts

+1-12
Original file line numberDiff line numberDiff line change
@@ -90,15 +90,6 @@ export async function delDatasetRelevantData({
9090
'_id teamId datasetId fileId metadata'
9191
).lean();
9292

93-
const removeJobScheduler = async () => {
94-
await Promise.all(
95-
datasets.map((dataset) => {
96-
if (dataset.type === DatasetTypeEnum.websiteDataset)
97-
return removeWebsiteSyncJobScheduler(String(dataset._id));
98-
})
99-
);
100-
};
101-
10293
await retryFn(async () => {
10394
await Promise.all([
10495
// delete training data
@@ -116,9 +107,7 @@ export async function delDatasetRelevantData({
116107
// Delete Image and file
117108
delCollectionRelatedSource({ collections }),
118109
// Delete vector data
119-
deleteDatasetDataVector({ teamId, datasetIds }),
120-
// Remove job scheduler
121-
removeJobScheduler()
110+
deleteDatasetDataVector({ teamId, datasetIds })
122111
]);
123112
});
124113

Diff for: projects/app/src/pages/api/core/dataset/delete.ts

+9
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import { OwnerPermissionVal } from '@fastgpt/global/support/permission/constant'
99
import { CommonErrEnum } from '@fastgpt/global/common/error/code/common';
1010
import { MongoDatasetCollectionTags } from '@fastgpt/service/core/dataset/tag/schema';
1111
import { removeImageByPath } from '@fastgpt/service/common/file/image/controller';
12+
import { DatasetTypeEnum } from '@fastgpt/global/core/dataset/constants';
13+
import { removeWebsiteSyncJobScheduler } from '@fastgpt/service/core/dataset/websiteSync';
1214

1315
async function handler(req: NextApiRequest) {
1416
const { id: datasetId } = req.query as {
@@ -40,6 +42,13 @@ async function handler(req: NextApiRequest) {
4042
datasetId: { $in: datasetIds }
4143
});
4244

45+
await Promise.all(
46+
datasets.map((dataset) => {
47+
if (dataset.type === DatasetTypeEnum.websiteDataset)
48+
return removeWebsiteSyncJobScheduler(String(dataset._id));
49+
})
50+
);
51+
4352
// delete all dataset.data and pg data
4453
await mongoSessionRun(async (session) => {
4554
// delete dataset data

Diff for: projects/app/src/pages/api/core/dataset/update.ts

+6
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import {
3535
removeWebsiteSyncJobScheduler,
3636
upsertWebsiteSyncJobScheduler
3737
} from '@fastgpt/service/core/dataset/websiteSync';
38+
import { delDatasetRelevantData } from '@fastgpt/service/core/dataset/controller';
3839

3940
export type DatasetUpdateQuery = {};
4041
export type DatasetUpdateResponse = any;
@@ -119,6 +120,11 @@ async function handler(
119120
});
120121

121122
const onUpdate = async (session: ClientSession) => {
123+
if (dataset.type === DatasetTypeEnum.websiteDataset && chunkSettings) {
124+
// clean up dataset
125+
await delDatasetRelevantData({ datasets: [dataset], session });
126+
}
127+
122128
await MongoDataset.findByIdAndUpdate(
123129
id,
124130
{

0 commit comments

Comments
 (0)