Add bull and caching

This commit is contained in:
2023-11-20 15:25:07 -07:00
parent 5a54a9ca5b
commit 725cabefe6
7 changed files with 339 additions and 29 deletions

View File

@@ -5,17 +5,19 @@ import { ParkioModule } from './parkio/parkio.module';
import { IswordModule } from './isword/isword.module';
import { AuthModule } from './auth/auth.module';
import { UsersModule } from './users/users.module';
import { ConfigModule } from '@nestjs/config';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { DomainrproxyModule } from './domainrproxy/domainrproxy.module';
import configuration from './config/configuration';
import { CacheModule } from '@nestjs/cache-manager';
import { CacheModule, CacheStoreFactory } from '@nestjs/cache-manager';
import { IrcbotModule } from './ircbot/ircbot.module';
import { IrcbotService } from './ircbot/ircbot.service';
import { DinosaurwetModule } from './dinosaurwet/dinosaurwet.module';
import { OgScraperModule } from './ogscraper/ogscraper.module';
import { PrometheusModule } from '@willsoto/nestjs-prometheus';
import { MinioModule } from './minio/minio.module';
import { KvModule } from './kv/kv.module';
import { BullModule } from '@nestjs/bull';
import type { RedisClientOptions } from 'redis';
import { redisStore } from 'cache-manager-redis-store';
@Module({
imports: [
@@ -23,6 +25,32 @@ import { KvModule } from './kv/kv.module';
isGlobal: true,
load: [configuration],
}),
CacheModule.registerAsync<RedisClientOptions>({
isGlobal: true,
imports: [ConfigModule],
inject: [ConfigService],
useFactory: async (configService: ConfigService) => ({
store: redisStore as unknown as CacheStoreFactory,
ttl: configService.get<number>('CACHE_TTL', 5),
// Store-specific configuration:
password: configService.get<string>('REDIS_PASS', ''),
host: configService.get<string>('REDIS_HOST', 'localhost'),
port: configService.get<number>('REDIS_PORT', 6379),
db: configService.get<number>('REDIS_DB', 1),
}),
}),
BullModule.forRootAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: async (configService: ConfigService) => ({
redis: {
password: configService.get<string>('REDIS_PASS', ''),
host: configService.get<string>('REDIS_HOST', 'localhost'),
port: configService.get<number>('REDIS_PORT', 6379),
db: configService.get<number>('REDIS_DB', 1),
},
}),
}),
PrometheusModule.register({
defaultLabels: {
app: 'us.dev api',