Skip to content

Commit a2eff46

Browse files
ExceptionsOccurExceptionsOccur
authored andcommitted
fix: The memory generation job does not work correctly
1 parent 350056d commit a2eff46

2 files changed

Lines changed: 14 additions & 12 deletions

File tree

server/src/repositories/memory.repository.ts

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,16 @@ import { IBulkAsset } from 'src/types';
1212

1313
@Injectable()
1414
export class MemoryRepository implements IBulkAsset {
15-
constructor(@InjectKysely() private db: Kysely<DB>) {}
15+
constructor(@InjectKysely() private db: Kysely<DB>) { }
1616

1717
async cleanup() {
18-
await this.db
19-
.deleteFrom('memory_asset')
20-
.using('asset')
21-
.whereRef('memory_asset.assetId', '=', 'asset.id')
22-
.where('asset.visibility', '!=', AssetVisibility.Timeline)
23-
.execute();
18+
await this.db.transaction().execute(async (trx) => {
19+
await trx.deleteFrom('memory_asset').execute();
20+
});
2421

25-
return this.db
26-
.deleteFrom('memory')
27-
.where('createdAt', '<', DateTime.now().minus({ days: 30 }).toJSDate())
28-
.where('isSaved', '=', false)
29-
.execute();
22+
return await this.db.transaction().execute(async (trx) => {
23+
await trx.deleteFrom('memory').execute();
24+
});
3025
}
3126

3227
searchBuilder(ownerId: string, dto: MemorySearchDto) {

server/src/services/memory.service.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ export class MemoryService extends BaseService {
1919
await this.databaseRepository.withLock(DatabaseLock.MemoryCreation, async () => {
2020
const state = await this.systemMetadataRepository.get(SystemMetadataKey.MemoriesState);
2121
const start = DateTime.utc().startOf('day').minus({ days: DAYS });
22+
const systemConfig = await this.systemMetadataRepository.get(SystemMetadataKey.SystemConfig)
23+
const isManualGenerate = DateTime.now().toFormat('HH:mm') !== systemConfig?.nightlyTasks?.startTime
24+
if (isManualGenerate && state) {
25+
state["lastOnThisDayDate"] = start.toISO();
26+
// if not cleanup, record will duplicates
27+
this.onMemoriesCleanup();
28+
}
2229
const lastOnThisDayDate = state?.lastOnThisDayDate ? DateTime.fromISO(state.lastOnThisDayDate) : start;
2330

2431
// generate a memory +/- X days from today

0 commit comments

Comments
 (0)