用户登录

下面我们再试一下动态添加还有删除计划任务。在 app.controller 里面,再定义一个接口,用 @Post 装饰一下,地址是 /cron。

方法的名字是 addCron,用 @Body 装饰一下 body ,类型是 any。 在方法里面,解构一下 body,需要的是它里面的 name。

下面声明一个 job,新建一个 CronJob,设置一下时间模式,CronExpression.EVERY_SECOND,提供一个回调,这个回调就是每次任务要做的事情。可以在控制台上输出 您好,后面加上这个 name。

然后执行 this.schedulerRegistry 上面的 addCronJob 添加一个计划任务,名字是 name,任务是 job。 再执行一下 job.start 启动这个任务。

再定义一个接口,用 @Delete 装饰一下,地址是 /cron/:name。 方法的名字是 deleteCron,用 @Param 需要 name,装饰一下 name 参数,类型是 string。

在方法里面,用 this.schedulerRegistry.deleteCronJob 删除掉名字是 name 的这个计划任务。

测试

在 http 客户端可以测试一下,配置一个请求,地址是 localhost:3000/cron ,请求方法是 post, 配置一个请求主体,里面添加一个 name 属性,值是 wanghao。 发送一下这个请求,会在应用里动态添加一个计划任务。名字是 wanghao 。

在控制台上你会发现每秒都会输出一个你好 wanghao。

再把这个任务删除掉,配置一下请求,方法是 delete,地址是 /cron/wanghao ,发送一下这个请求,这样会把名字是 wanghao 的这个计划任务删除掉。

在观察一下控制台,现在就不会再输出 你好,wanghao 了。

动态添加与删除计划任务《 Nest.js 服务端应用:计划任务 》

统计

13074
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点