rwadurian/backend/services/reward-service/src/application/schedulers/reward-expiration.scheduler.ts

28 lines
912 B
TypeScript

import { Injectable, Logger } from '@nestjs/common';
import { Cron, CronExpression } from '@nestjs/schedule';
import { RewardApplicationService } from '../services/reward-application.service';
@Injectable()
export class RewardExpirationScheduler {
private readonly logger = new Logger(RewardExpirationScheduler.name);
constructor(
private readonly rewardService: RewardApplicationService,
) {}
/**
* 每小时检查过期的待领取奖励
*/
@Cron(CronExpression.EVERY_HOUR)
async handleExpiredRewards() {
this.logger.log('开始检查过期奖励...');
try {
const result = await this.rewardService.expireOverdueRewards();
this.logger.log(`过期奖励处理完成:${result.expiredCount}笔,共${result.totalUsdtExpired} USDT`);
} catch (error) {
this.logger.error('处理过期奖励时发生错误:', error);
}
}
}