我怎样才能让node-cron只运行一次?

问题描述 投票:0回答:2

我想在 10 分钟内控制台记录“hi”,但仅限一次。我怎样才能用node-cron实现这个目标?

尝试使用其他一些但他们未能完成这项工作。

javascript node.js node-modules node-cron
2个回答
0
投票

node-cron
支持传递
Date
对象以在特定日期和时间触发事件。来自
node-cron
README.md

此外,该库超越了基本的 cron 语法,并允许您提供 Date 对象。这将用作您回调的触发器。

API

[...]

  • CronJob

    • constructor(cronTime, onTick, onComplete, start, timezone, context, runOnInit, utcOffset, unrefTimeout)
      • cronTime
        - [必需] - 解雇你的工作的时间。这可以是 cron 语法或 JS Date 对象的形式。

[...]

简而言之,创建一个

Date()
对象,表示执行后 10 分钟的时间:

var cron = require('node-cron');
const date = new Date().setMinutes(new Date().getMinutes() + 10); // h/t https://stackoverflow.com/questions/4517672/how-to-add-20-minutes-to-a-current-date
cron.schedule(date, () => console.log("hi"));

0
投票

我认为你错过了工作和日程安排之间的区别。

  • 如果您希望作业/任务在将来运行一次 - 使用 节点调度
  • 如果您希望某个作业/任务在将来重复运行多次 - 使用 node-cron

我为 node-cron 创建了一个视频来了解它是如何工作的。 https://www.youtube.com/watch?v=noF9LOoBgr4

© www.soinside.com 2019 - 2024. All rights reserved.