update latest note in background (don't await the result)
This commit is contained in:
parent
b18d7c0f3f
commit
c55af9c3b3
2 changed files with 17 additions and 4 deletions
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue