gpt4 book ai didi

node.js - 嵌套计划 npm 不工作

转载 作者:行者123 更新时间:2023-12-02 10:45:59 29 4
gpt4 key购买 nike

我正在使用 Nest.js 框架来开发基于 Node 的应用程序。我正在尝试使用 Nest-schedule 编写调度程序,如 https://www.npmjs.com/package/nest-schedule 中所述。 .

不知何故,与 @Cron 或 @Schedule 一起使用时,代码无法正常工作。其余的装饰器工作得很好。使用与上面链接中提到的相同的代码库。任何人都可以帮我设置这个并使用 Nodejs 中使用的精确 cron 模式

最佳答案

对于当前版本的 Nest,您可以使用 Nestjs/schedule。看看我如何使用 Nestjs/schedule 实现这一目标。

第一个:安装nestjs cli

npm i -g @nestjs/cli

第二:创建一个新项目

nest new schedule-sample

第三:安装nestjs计划

npm install --save @nestjs/schedule

第四:生成一个新服务来放置您的服务。

nest generate service cron

安装该软件包后,将其添加到 app.module 中,如下所示:

import { Module } from '@nestjs/common';
import { ScheduleModule } from '@nestjs/schedule';
import { CronService } from './cron.service';

@Module({
imports: [
ScheduleModule.forRoot()
],
providers: [CronService],
})
export class AppModule {}

第五:您可以如下所示运行它(完整的说明在这里https://docs.nestjs.com/techniques/task-scheduling):

@Cron('*/5 * * * * *')
runEvery10Seconds() {
console.log('Run it every 5 seconds');
}

这是完整的示例 (cron.service.ts)。

import { Logger } from '@nestjs/common';
import { Injectable } from '@nestjs/common';
import { Cron, Interval } from '@nestjs/schedule';

@Injectable()
export class CronService {

private readonly logger = new Logger(CronService.name);

@Cron('*/5 * * * * *')
runEvery10Seconds() {
this.logger.debug('Run it every 5 seconds');
}


@Cron('10 * * * * *')
handleCron() {
this.logger.debug('Called when the current second is 10');
}

@Interval(10000)
handleInterval() {
this.logger.debug('Called every 10 seconds');
}
}

最终想法:
安排作业最复杂的方法是使用动态 cron 作业。为此,您可以使用 SchedulerRegistry API 从代码中的任何位置按名称获取对 CronJob 实例的引用。首先,使用标准构造函数注入(inject)注入(inject) SchedulerRegistry:

constructor(private schedulerRegistry: SchedulerRegistry) {}

提示从 @nestjs/schedule 包导入 SchedulerRegistry。然后在类中使用它,如下所示。假设使用以下声明创建了一个 cron 作业:

@Cron('* * 8 * * *', {
name: 'notifications',
})
triggerNotifications() {}

使用以下方式访问此职位:

const job = this.schedulerRegistry.getCronJob('notifications');

job.stop();
console.log(job.lastDate());

我已经在以下版本(package.json)中对其进行了测试

"@nestjs/common": "^7.6.15",
"@nestjs/core": "^7.6.15",
"@nestjs/schedule": "^0.4.3",

关于node.js - 嵌套计划 npm 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52051857/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com