25 lines
843 B
TypeScript
Executable File
25 lines
843 B
TypeScript
Executable File
import { InjectQueue } from '@nestjs/bullmq';
|
|
import { Injectable } from '@nestjs/common';
|
|
import EventBus from '@server/utils/event-bus';
|
|
import { Queue } from 'bullmq';
|
|
import { ObjectType } from '@nice/common';
|
|
import { QueueJobType } from '../types';
|
|
@Injectable()
|
|
export class PostProcessService {
|
|
constructor(@InjectQueue('general') private generalQueue: Queue) {}
|
|
|
|
private generateJobId(type: ObjectType, data: any): string {
|
|
// 根据类型和相关ID生成唯一的job标识
|
|
switch (type) {
|
|
case ObjectType.ENROLLMENT:
|
|
return `stats_${type}_${data.courseId}`;
|
|
case ObjectType.LECTURE:
|
|
return `stats_${type}_${data.courseId}_${data.sectionId}`;
|
|
case ObjectType.POST:
|
|
return `stats_${type}_${data.courseId}`;
|
|
default:
|
|
return `stats_${type}_${Date.now()}`;
|
|
}
|
|
}
|
|
}
|