Constructor BoostExpiryService
- Namespace
- UsluzionicaServer.Infrastructure
- Assembly
- UsluzionicaServer.dll
BoostExpiryService(IServiceScopeFactory, DistributedLock, ILogger<BoostExpiryService>)
Background servis koji svakih sat vremena pronalazi i deaktivira istekle boostove.
Logika pri isticanju boosta: listing.BoostScore -= boost.TokensSpent / boost.DurationDays boost.IsActive = false
Ako listing više nema ni jednog aktivnog boosta: listing.IsBoosted = false listing.BoostScore = 0 (cleanup floating point ostataka) listing.BoostExpiresAt = null
Koristi IServiceScopeFactory jer je BackgroundService singleton a AppDbContext je scoped — ne smeju se mešati lifetime-ovi.
public BoostExpiryService(IServiceScopeFactory scopeFactory, DistributedLock locks, ILogger<BoostExpiryService> logger)
Parameters
scopeFactoryIServiceScopeFactorylocksDistributedLockloggerILogger<BoostExpiryService>