diff options
| author | Kagami Sascha Rosylight <saschanaz@outlook.com> | 2023-03-06 07:51:17 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-06 07:51:17 +0100 |
| commit | 5651353c2756e6580a819c7d4f1f5ad41553abbe (patch) | |
| tree | 7055c10a2af3734be765508e1212aa9c23ec34ee /packages/backend/src/core/NoteCreateService.ts | |
| parent | Merge branch 'develop' into mkusername-empty (diff) | |
| parent | [ci skip] chore(client): showNoteActionsOnlyHover変更時にリロードダ... (diff) | |
| download | misskey-5651353c2756e6580a819c7d4f1f5ad41553abbe.tar.gz misskey-5651353c2756e6580a819c7d4f1f5ad41553abbe.tar.bz2 misskey-5651353c2756e6580a819c7d4f1f5ad41553abbe.zip | |
Merge branch 'develop' into mkusername-empty
Diffstat (limited to 'packages/backend/src/core/NoteCreateService.ts')
| -rw-r--r-- | packages/backend/src/core/NoteCreateService.ts | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/packages/backend/src/core/NoteCreateService.ts b/packages/backend/src/core/NoteCreateService.ts index 54c135a7c5..4c4261ba79 100644 --- a/packages/backend/src/core/NoteCreateService.ts +++ b/packages/backend/src/core/NoteCreateService.ts @@ -1,6 +1,7 @@ +import { setImmediate } from 'node:timers/promises'; import * as mfm from 'mfm-js'; import { In, DataSource } from 'typeorm'; -import { Inject, Injectable } from '@nestjs/common'; +import { Inject, Injectable, OnApplicationShutdown } from '@nestjs/common'; import { extractMentions } from '@/misc/extract-mentions.js'; import { extractCustomEmojisFromMfm } from '@/misc/extract-custom-emojis-from-mfm.js'; import { extractHashtags } from '@/misc/extract-hashtags.js'; @@ -137,7 +138,9 @@ type Option = { }; @Injectable() -export class NoteCreateService { +export class NoteCreateService implements OnApplicationShutdown { + #shutdownController = new AbortController(); + constructor( @Inject(DI.config) private config: Config, @@ -313,7 +316,10 @@ export class NoteCreateService { const note = await this.insertNote(user, data, tags, emojis, mentionedUsers); - setImmediate(() => this.postNoteCreated(note, user, data, silent, tags!, mentionedUsers!)); + setImmediate('post created', { signal: this.#shutdownController.signal }).then( + () => this.postNoteCreated(note, user, data, silent, tags!, mentionedUsers!), + () => { /* aborted, ignore this */ }, + ); return note; } @@ -756,4 +762,8 @@ export class NoteCreateService { return mentionedUsers; } + + onApplicationShutdown(signal?: string | undefined) { + this.#shutdownController.abort(); + } } |