首页 > 解决方案 > NodeJS:基于 MongoDB 条目在特定时间发送大量文本的最佳方式?

问题描述

我正在编写一个应用程序,它需要使用 AWS 基于 MongoDB 数据库条目发送文本消息。我正在数据库中保存消息、电话号码和发送消息的时间,我目前可以使用号码和消息发送文本。我试图找出在适当时间发送消息的最佳方式。我最初认为最好的方法是让一个 cron 作业每分钟查询一次数据库,然后发送文本。但是,cron 作业是否适合可靠且大规模地执行此操作?此外,如果数据库变得太大,每分钟查询会花费太长时间吗?我还考虑使用 setInterval 每分钟运行一次查询。但是这两种方式都像是如果查询数据库需要更长的时间然后一分钟,它将尝试查询它两次并可能发送重复的消息或导致其他问题。其中一种是处理这种情况的好方法还是其他方法会更好?

标签: javascriptnode.jsmongodbexpress

解决方案


  1. 设置一个每分钟运行一次的 cron 作业,查询: ((locked:not_exists || locked: false) && record.time_to_send <= current_time)
  2. 现在在 cron 作业中保持一个标志“锁定”,只要记录即将被处理(或发送消息),该标志就设置为 true

您可能还想看看 AWS lambda 或 step 函数。


推荐阅读