update latest note in background (don't await the result)

This commit is contained in:
Hazelnoot 2024-10-13 10:31:41 -04:00
parent b18d7c0f3f
commit c55af9c3b3
2 changed files with 17 additions and 4 deletions

View File

@ -531,8 +531,6 @@ export class NoteCreateService implements OnApplicationShutdown {
await this.notesRepository.insert(insert); await this.notesRepository.insert(insert);
} }
await this.updateLatestNote(insert);
return insert; return insert;
} catch (e) { } catch (e) {
// duplicate key error // duplicate key error
@ -815,6 +813,9 @@ export class NoteCreateService implements OnApplicationShutdown {
}); });
} }
// Update the Latest Note index / following feed
this.updateLatestNoteBG(note);
// Register to search database // Register to search database
if (!user.noindex) this.index(note); if (!user.noindex) this.index(note);
} }
@ -1145,7 +1146,13 @@ export class NoteCreateService implements OnApplicationShutdown {
this.dispose(); this.dispose();
} }
private async updateLatestNote(note: MiNote) { private updateLatestNoteBG(note: MiNote): void {
this
.updateLatestNote(note)
.catch(err => console.error('Unhandled exception while updating latest_note (after create):', err));
}
private async updateLatestNote(note: MiNote): Promise<void> {
// Ignore DMs. // Ignore DMs.
// Followers-only posts are *included*, as this table is used to back the "following" feed. // Followers-only posts are *included*, as this table is used to back the "following" feed.
if (note.visibility === 'specified') return; if (note.visibility === 'specified') return;

View File

@ -152,7 +152,7 @@ export class NoteDeleteService {
userId: user.id, userId: user.id,
}); });
await this.updateLatestNote(note); this.updateLatestNoteBG(note);
if (deleter && (note.userId !== deleter.id)) { if (deleter && (note.userId !== deleter.id)) {
const user = await this.usersRepository.findOneByOrFail({ id: note.userId }); const user = await this.usersRepository.findOneByOrFail({ id: note.userId });
@ -236,6 +236,12 @@ export class NoteDeleteService {
} }
} }
private updateLatestNoteBG(note: MiNote): void {
this
.updateLatestNote(note)
.catch(err => console.error('Unhandled exception while updating latest_note (after delete):', err));
}
private async updateLatestNote(note: MiNote) { private async updateLatestNote(note: MiNote) {
// If it's a DM, then it can't possibly be the latest note so we can safely skip this. // If it's a DM, then it can't possibly be the latest note so we can safely skip this.
if (note.visibility === 'specified') return; if (note.visibility === 'specified') return;