Spaces:
Sleeping
Sleeping
| import { Module, OnModuleInit } from '@nestjs/common'; | |
| import { BullModule, InjectQueue } from '@nestjs/bullmq'; | |
| import { Queue } from 'bullmq'; | |
| import { MarketsService } from './markets.service'; | |
| import { MarketsController } from './markets.controller'; | |
| import { MarketProcessor } from './market.processor'; | |
| import { MarketCacheService } from './market-cache.service'; | |
| const redisAvailable = process.env.REDIS_HOST || process.env.ENABLE_REDIS === 'true'; | |
| const bullImports = redisAvailable | |
| ? [BullModule.registerQueue({ name: 'market-processing' })] | |
| : []; | |
| const bullProviders = redisAvailable ? [MarketProcessor] : []; | |
| ({ | |
| imports: [...bullImports], | |
| controllers: [MarketsController], | |
| providers: [MarketsService, MarketCacheService, ...bullProviders], | |
| }) | |
| export class MarketsModule implements OnModuleInit { | |
| constructor( | |
| private readonly marketsService: MarketsService, | |
| private readonly cacheService: MarketCacheService, | |
| ) {} | |
| async onModuleInit() { | |
| // Pre-set all markets as ready (no queue needed without Redis) | |
| const markets = this.marketsService.getMarkets(); | |
| for (const market of markets) { | |
| this.cacheService.setStatus(market.slug, 'ready'); | |
| } | |
| console.log(`[WagerKit] Initialized ${markets.length} markets (Redis: ${redisAvailable ? 'connected' : 'skipped'})`); | |
| } | |
| } | |