28 lines
944 B
TypeScript
28 lines
944 B
TypeScript
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()}`;
|
|
}
|
|
}
|
|
} |