Node.js 如何基于保存的mongodb文档数据安排/排队任务[NodeJS]

Node.js 如何基于保存的mongodb文档数据安排/排队任务[NodeJS],node.js,scheduled-tasks,scheduler,task-queue,Node.js,Scheduled Tasks,Scheduler,Task Queue,我希望在我的服务器中有一个功能,用户可以通过API路由创建“jobScan”,例如“/create scan job,基本上在创建scanJob时,它将保存在mongodb数据库中,并带有一个“scanDueDate”,用于对任务进行排队,该任务将在指定日期将扫描状态更改为“已完成”由用户输入 我怎样才能建造这样的东西?我在将数据保存到数据库中时没有问题,但是我如何“排队”在作为输入提供的dueDate启动它?您可以使用或包 议程在MongoDB数据库中保存作业 公牛拯救了Redis的就业机会

我希望在我的服务器中有一个功能,用户可以通过API路由创建“jobScan”,例如“/create scan job,基本上在创建scanJob时,它将保存在mongodb数据库中,并带有一个“scanDueDate”,用于对任务进行排队,该任务将在指定日期将扫描状态更改为“已完成”由用户输入

我怎样才能建造这样的东西?我在将数据保存到数据库中时没有问题,但是我如何“排队”在作为输入提供的dueDate启动它?

您可以使用或包

  • 议程在MongoDB数据库中保存作业
  • 公牛拯救了Redis的就业机会

  • 两者都支持cron作业。

    Agenda使用MongoDB进行队列调度,但有点不稳定。您也可以使用,但它会将作业队列存储在内存中

    至于这里通知的or,它确实使用Redis作为队列存储。但它的文档描述似乎并不完整。我记得,Redis不支持开箱即用的Windows。因此,如果您想在本地运行它,我强烈建议您使用

    另外,对于任务队列,不要忘记GUI。您可以使用:

    • Agendash(带议程),允许从界面手动创建作业
    • Bull板(使用Bull或BullMQ),它只提供有关任务的只读数据

    我看到为了拥有bull,我需要一台运行的redis服务器。有没有办法在一台本地服务器上实现这一点?是的,bull在不同的端口上运行。端口#6379。你能给我链接一个关于如何使用nodejs设置它的源代码吗?指的是redis服务器,因为我在bull文档中没有找到该示例。提前感谢:)你使用的是哪种操作系统?MacOS,很抱歉再次询问,但我是新手,所以redis和Nodej运行各自的服务器?