【问题标题】:Run function at certain time based on time value in MongoDB record根据 MongoDB 记录中的时间值在特定时间运行函数
【发布时间】:2021-08-26 19:06:00
【问题描述】:

所以我有一个 NodeJS 后端并使用 MongoDB 作为数据库。我想在每次当前时间等于 DB 对象中提到的某个时间值时运行某个函数。

例如:-

我在数据库中有一条时间戳为1623263299944的记录,并且有一个名为cancelIntent的函数执行某种任务,现在我想在当前时间等于提到的时间时调用这个函数在数据库记录中。

我怎样才能做到这一点?

非常感谢任何帮助!

【问题讨论】:

  • 你需要一个调度器。类似于 nix 系统上的 cron 或 Windows 上的任务调度程序。数据库不运行函数,它们存储数据。
  • 这个时间戳会改变吗?如果没有,任务调度程序等就是要走的路
  • 感谢您的回复@AlexBlex,您是在说每隔一段时间运行一些玉米作业吗?
  • 感谢@MilesZew 的回复,您是对的,它不会改变。您能否分享一些博客链接,以便我更好地了解如何使用我正在使用的技术堆栈来实现?
  • 我向您指出了一些资源,但如果您需要更多帮助,请告诉我

标签: node.js mongodb server


【解决方案1】:

通过 Google 快速搜索找到了 this blog postthis library,这看起来就像您要找的一样

这里是another question,看起来它可以为您提供所需的内容

看起来你只需要计算你想在未来多少天、多少小时、多少小步舞曲等,然后将其输入到agenda.schedule函数中

您也可以使用node-schedule,它的好处是允许您直接输入日期,如下所示:

const job = schedule.scheduleJob(date, function(){
  /* your code */
})

我很快对此进行了测试,它似乎可以正常工作

【讨论】:

  • 感谢@MilesZew 提供详细的解决方案,我一定会看看这个:)
猜你喜欢
  • 2017-03-10
  • 2021-12-09
  • 1970-01-01
  • 1970-01-01
  • 2018-07-21
  • 2018-10-11
  • 1970-01-01
  • 2016-09-20
  • 1970-01-01
相关资源
最近更新 更多