Запись значения в кэш в Nest
Заголовок списка меняется редко, но каждый раз его заново готовят в сервисе. Удобнее один раз положить готовую строку в кэш и дальше отдавать её оттуда.
Менеджер кэша внедряют по токену
CACHE_MANAGER. Тип берут
из того же пакета, что и модуль.
Запись строки выполняют асинхронной
операцией менеджера с ключом
и значением.
Покажем на примере постов:
import { Inject, Injectable } from '@nestjs/common';
import { CACHE_MANAGER, Cache } from '@nestjs/cache-manager';
@Injectable()
export class PostService {
constructor(
@Inject(CACHE_MANAGER) private cacheManager: Cache,
) {}
async saveBanner(text: string): Promise<void> {
await this.cacheManager.set('banner', text);
}
}
Сервис регистрируем в провайдерах корневого модуля, где уже подключён модуль кэша:
import { Module } from '@nestjs/common';
import { CacheModule } from '@nestjs/cache-manager';
import { PostController } from './post.controller.js';
import { PostService } from './post.service.js';
@Module({
imports: [CacheModule.register()],
controllers: [PostController],
providers: [PostService],
})
export class AppModule {}
В сервисе темы работников сохраните
краткий заголовок списка в кэше
и подключите сервис к модулю
с WorkerController.