【发布时间】:2019-09-04 14:20:52
【问题描述】:
由于我是 loopback 4 和 Typescript 的新手,知道我们必须使用自定义引导程序来实现像 Cron 这样的计划任务。
我需要一个代码 sn-p 来执行此操作,即实现配置、发现和加载的引导阶段以运行 Cron 的自定义引导程序类
【问题讨论】:
标签: loopbackjs loopback v4l2loopback
由于我是 loopback 4 和 Typescript 的新手,知道我们必须使用自定义引导程序来实现像 Cron 这样的计划任务。
我需要一个代码 sn-p 来执行此操作,即实现配置、发现和加载的引导阶段以运行 Cron 的自定义引导程序类
【问题讨论】:
标签: loopbackjs loopback v4l2loopback
我不确定这是不是这样,但这对我有用。
https://loopback.io/doc/en/lb4/Booting-an-Application.html#bootcomponent
首先在项目文件夹中创建一个组件。我创建了src\components\cron.component.ts
import { Component } from "@loopback/core";
import { CronJob, CronCommand } from "cron"
export class CronJobsComponent implements Component {
private cj: CronJob;
constructor(){
this.start()
}
async start(){
this.cj = new CronJob('* * * * * *', this.showMessage)
this.cj.start();
}
showMessage:CronCommand = async () => {
console.log("inside cron jobs")
}
}
接下来在application.ts文件中导入我们的组件
import { CronJobsComponent } from './components'
并在构造函数中注册我们的新组件
this.component(CronJobsComponent);
corn 作业在应用程序启动时开始。
我用过https://www.npmjs.com/package/cron和https://www.npmjs.com/package/@types/cron
希望对你有所帮助。
【讨论】:
您始终可以创建一个 cron 端点。
然后您可以将 curl 命令添加到您的 crontab。
curl http://localhost:3000/cron
这种方法是处理关注点分离的好方法。如果您的 api 是在 kubernetes 上运行的微服务,您可以使用 Cron 资源调用 cron 端点。
如果您的应用程序是公开的,请确保端点是安全的。
【讨论】: