【问题标题】:Loopback 4: Scheduled cron example using Loopback 4Loopback 4:使用 Loopback 4 的计划 cron 示例
【发布时间】:2019-09-04 14:20:52
【问题描述】:

由于我是 loopback 4 和 Typescript 的新手,知道我们必须使用自定义引导程序来实现像 Cron 这样的计划任务。

我需要一个代码 sn-p 来执行此操作,即实现配置、发现和加载的引导阶段以运行 Cron 的自定义引导程序类

【问题讨论】:

    标签: loopbackjs loopback v4l2loopback


    【解决方案1】:

    我不确定这是不是这样,但这对我有用。

    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/cronhttps://www.npmjs.com/package/@types/cron

    希望对你有所帮助。

    【讨论】:

    • 出于某种原因,我看到“内部 cron 作业”每个作业打印两次。我的 CronJob 每 10 秒运行一次 CronJob('*/10 * * * * * ', this.ShowMessage)。有人知道吗?
    【解决方案2】:

    您始终可以创建一个 cron 端点。

    http://localhost:3000/cron

    然后您可以将 curl 命令添加到您的 crontab。

    curl http://localhost:3000/cron
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-31
      • 1970-01-01
      • 1970-01-01
      • 2021-03-10
      • 2020-01-30
      • 2019-08-02
      相关资源
      最近更新 更多