【问题标题】:Node-Cron not working properly on Digital OceanNode-Cron 在 Digital Ocean 上无法正常工作
【发布时间】:2023-03-21 19:50:02
【问题描述】:

我每小时运行一个 cron 作业,但它没有按预期工作。 它应该每小时运行一次,例如下午 1 点、下午 2 点、下午 3 点等。
但它迟到了 30 分钟。下午 1 点 30 分、下午 2 点 30 分等等……

我在 Node.js 中使用 node-cron,服务器是 Digital Ocean Ubuntu。

这里是代码

var moment = require('moment');
var cron = require('node-cron');
cron.schedule('0 * * * *', function () {
    console.log('cron job started at ' + moment().utcOffset(330).format());
});

输出 - 运行延迟 30 分钟
cron 作业开始于 2018-02-10T17:30:00+05:30
cron 作业开始于 2018-02-10T18:30:00+05:30
cron 作业开始于 2018-02-10T19:30:00+05:30
cron 作业开始于 2018-02-10T20:30:00+05:30

我希望输出为- 每小时开始

cron 作业开始于 2018-02-10T17:00:00+05:30
cron 作业开始于 2018-02-10T18:00:00+05:30
cron 作业开始于 2018-02-10T19:00:00+05:30
cron 作业开始于 2018-02-10T20:00:00+05:30

【问题讨论】:

  • .utcOffset(330) 删除此部分以显示您的服务器时区的时间。

标签: node.js cron momentjs digital-ocean node-cron


【解决方案1】:

您正在更改 moment() 返回的时区,方法是调用 .utcOffset(330) 添加 3.5h。
删除对utcOffset() 的调用,它应该会显示正确的时间。

【讨论】:

    猜你喜欢
    • 2015-02-02
    • 2017-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多