ssszp 11f9269ff2
fix
修复CoolQueue装饰器worker参数类型错误
2025-03-09 18:46:02 +08:00

27 lines
860 B
TypeScript

import {
Scope,
ScopeEnum,
saveClassMetadata,
saveModule,
} from '@midwayjs/core';
import { JobsOptions, WorkerOptions } from 'bullmq';
export const COOL_TASK_KEY = 'decorator:cool:task';
export function CoolQueue(
config = { type: 'comm', queue: {}, worker: {} } as {
type?: 'comm' | 'getter' | 'noworker' | 'single';
queue?: JobsOptions;
worker?: Omit<WorkerOptions, 'connection' | 'prefix'>;
}
): ClassDecorator {
return (target: any) => {
// 将装饰的类,绑定到该装饰器,用于后续能获取到 class
saveModule(COOL_TASK_KEY, target);
// 保存一些元数据信息,任意你希望存的东西
saveClassMetadata(COOL_TASK_KEY, config, target);
// 指定 IoC 容器创建实例的作用域,这里注册为请求作用域,这样能取到 ctx
Scope(ScopeEnum.Singleton)(target);
};
}