I'm using Tsed(newb) and want to use the BullMQ plugin.
I want to run a job right after the server starts but I'm not sure how to do it properly. I've been following this guide https://tsed.io/tutorials/bullmq.html and I've tried this beforehand.
import { JobDispatchService } from "./services/jobDispatchService"; // from https://tsed.io/tutorials/bullmq.html#dispatching-jobs
export class Server {
@Inject()
app: PlatformApplication;
@Inject()
dispatcher: JobDispatchService;
@Configuration()
settings: Configuration;
$beforeRoutesInit(): void {
this.app
.use(URLMiddleware)
.use(cors())
.use(cookieParser())
.use(compress({}))
.use(methodOverride())
.use(bodyParser.json())
.use(
bodyParser.urlencoded({
extended: true
})
);
}
$afterRoutesInit(): void {
$log.error("after init");
console.log("should check notif");
this.dispatcher.doingSomething()
}
}
I get this error when starting the server.
[2023-12-15T01:09:33.035] [DEBUG] [TSED] - Start server...
[2023-12-15T01:09:33.043] [INFO ] [TSED] - Injector created... +6ms
[2023-12-15T01:09:35.022] [INFO ] [TSED] - Providers loaded... +1979ms
[2023-12-15T01:09:35.022] [INFO ] [TSED] - Build providers +0ms
query: SELECT * FROM current_schema()
query: SHOW server_version;
[2023-12-15T01:09:35.106] [INFO ] [TSED] - Connected with typeorm to database: default
[2023-12-15T01:09:35.142] [ERROR] [TSED] - TypeError: this.injector.getMany is not a function
at BullMQModule.$beforeInit (/home//dashboard/packages/aservice/node_modules/@tsed/bullmq/src/BullMQModule.ts:28:19)
at LocalsContainer.emit (/home//dashboard/packages/aservice/node_modules/@tsed/di/src/domain/LocalsContainer.ts:12:13)
at InjectorService.load (/home//dashboard/packages/aservice/node_modules/@tsed/di/src/services/InjectorService.ts:313:18)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at PlatformBuilder.loadInjector (/home//dashboard/packages/aservice/node_modules/@tsed/common/src/builder/PlatformBuilder.ts:202:5)
at PlatformBuilder.runLifecycle (/home//dashboard/packages/aservice/node_modules/@tsed/common/src/builder/PlatformBuilder.ts:180:5)
at bootstrap (/home//dashboard/packages/aservice/src/index.ts:8:22)
Your issue seems to be related to a wrong dependencies installed on your project. One of the rule of Ts.ED framework is to have the same version for all @tsed/* packages (excepted for the @tsed/logger).
To have a quick answer to your issue, it's recommended to open issue directly on github.
See you