NestJs依赖注入与任务计划不起作用

时间:2020-02-16 07:56:39

标签: dependency-injection scheduled-tasks nestjs

我正在尝试按照Nest documentation中所述执行任务调度,但是没有一个示例为使用调度的服务提供依赖注入。我想要的是在重复执行的任务中使用注入的服务,但是当我做这样的事情时:

@Injectable()
export class MyWorkerService {

    constructor(private readonly injectedService: MyInjectedService) {}

    @Timeout(5000)
    async doSomething():  { 
     console.log(this.injectedService); // undefined
     this.injectedService.doStuff(); // TypeError: cannot read property 'doStuff' of undefined
    }
}

...依赖项注入不起作用。两种服务都在同一模块中注册为提供程序。

为什么会这样?我还能如何通过预定方法访问我的其他服务?

1 个答案:

答案 0 :(得分:3)

2小时后,我在这里回答自己的问题:)

基本上,我注入到计划服务中的服务之一具有 REQUEST 范围:

@Injectable({ scope: Scope.REQUEST })

将其从注入的服务构造器中删除后,依赖项注入按预期开始工作。