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.updateLatestNote(insert);
return insert;
} catch (e) {
// 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
if (!user.noindex) this.index(note);
}
@ -1145,7 +1146,13 @@ export class NoteCreateService implements OnApplicationShutdown {
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.
// Followers-only posts are *included*, as this table is used to back the "following" feed.
if (note.visibility === 'specified') return;

View file

@ -152,7 +152,7 @@ export class NoteDeleteService {
userId: user.id,
});
await this.updateLatestNote(note);
this.updateLatestNoteBG(note);
if (deleter && (note.userId !== deleter.id)) {
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) {
// 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;