回送4:使用回送4的计划cron示例

时间:2019-04-08 09:16:54

标签: loopbackjs loopback v4l2loopback

由于我对Loopback 4和Typescript还是很陌生,所以知道我们必须使用自定义启动程序来实现Cron之类的计划任务。

我需要执行此操作的代码段,即一个自定义启动程序类,该类实现了配置,发现和加载以运行Cron的启动程序阶段

2 个答案:

答案 0 :(得分:0)

我不确定这是这样做的方法,但这对我有用。

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);

玉米作业在应用程序启动时开始。

我使用了https://www.npmjs.com/package/cronhttps://www.npmjs.com/package/@types/cron

希望这对您有所帮助。

答案 1 :(得分:0)

您始终可以创建cron端点。

http://localhost:3000/cron

然后您可以在crontab中添加curl命令。

curl http://localhost:3000/cron

此方法是处理关注点分离的好方法。如果您的api是在kubernetes上运行的微服务,则可以使用Cron资源调用cron端点。

如果您的应用程序是公开的,只需确保端点是安全的。