Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用node.js和Mongodb创建计划广播API_Node.js_Mongodb_Api_Design Patterns_Scheduled Tasks - Fatal编程技术网

使用node.js和Mongodb创建计划广播API

使用node.js和Mongodb创建计划广播API,node.js,mongodb,api,design-patterns,scheduled-tasks,Node.js,Mongodb,Api,Design Patterns,Scheduled Tasks,假设您必须在用户的应用程序(如WhatsApp、Line)中实现向用户广播的时间表。数据将从客户端(通过HTML表单)发送,逻辑如下: 如果isSchedule===false则将消息保存到数据库并立即广播 如果isSchedule===true,则将消息保存到数据库中,等待时间到达并发送消息 当时间到达时,如何触发数据库 我脑海中出现的解决方案是使用cron作业,每分钟从数据库中检索数据,并检查Date.now()iftimeInDB-Date.now()

假设您必须在用户的应用程序(如WhatsApp、Line)中实现向用户广播的时间表。数据将从客户端(通过HTML表单)发送,逻辑如下:

  • 如果
    isSchedule===false
    则将消息保存到数据库并立即广播
  • 如果
    isSchedule===true
    ,则将消息保存到数据库中,等待时间到达并发送消息
  • 当时间到达时,如何触发数据库

    我脑海中出现的解决方案是使用
    cron作业
    ,每分钟从数据库中检索数据,并检查
    Date.now()
    if
    timeInDB-Date.now()<0
    ,然后向用户广播消息。但我不确定这是不是每分钟检索数据的好方法?请看下图,谢谢。

    您还可以使用节点计划()npm。它有助于基于时间的调度,与基于时间间隔的调度不同