wagerkit / backend /src /markets /markets.module.ts
saadrizvi09
added search
8626b2e
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] : [];
@Module({
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'})`);
}
}