【问题标题】:How to update the node js Date() function daily without restarting my server daily如何每天更新节点 js Date() 函数而不每天重新启动我的服务器
【发布时间】:2020-08-19 12:19:25
【问题描述】:

我目前正在使用节点 Date() 函数来跟踪我正在创建的调度网站的天数,但是,要到达第二天,我每次都需要停止并重新启动服务器。我怎样才能不断地对其进行 ping 操作以使其自行更新?

【问题讨论】:

  • 再次致电new Date()?
  • 在不了解您现在的工作方式的情况下,您可以考虑使用cron job。
  • 我使用了一个 cron 作业,它们非常简单且功能强大,谢谢

标签: javascript node.js date


【解决方案1】:

理论上,Date() 函数的每次调用都应该返回当前日期和时间。我刚刚在午夜时分在节点 v13.13.0 中测试了它,它运行得非常好。

您是在服务器启动时调用一次Date(),然后将该值存储在变量中吗?

如果你需要在午夜调用更新函数,你可以使用:

function dailyUpdate() { console.log(new Date()) }

midnight               = new Date().getTime()
millisecondsToMidnight = (
    midnight 
  - new Date().getTime() 
  + midnight.getTimezoneOffset()*60*1000
)

setTimeout(() => {
  dailyUpdate();
  setInterval(() => {
    dailyUpdate()
  }, 24*60*60*1000)
}, millisecondsToMidnight)

【讨论】:

  • 使用 setInterval 不是一个很好的方法来运行你想在精确的时间运行的东西,特别是如果主机观察到夏令时。 cron 作业可能是更好的选择,请参阅 Set Interval in Node.js vs. Cron Job?
猜你喜欢
  • 2012-05-13
  • 1970-01-01
  • 2017-08-12
  • 2013-08-24
  • 2021-09-16
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 2016-09-19
相关资源
最近更新 更多