javascript - NodeJS:基于 MongoDB 条目在特定时间发送大量文本的最佳方式?
问题描述
我正在编写一个应用程序,它需要使用 AWS 基于 MongoDB 数据库条目发送文本消息。我正在数据库中保存消息、电话号码和发送消息的时间,我目前可以使用号码和消息发送文本。我试图找出在适当时间发送消息的最佳方式。我最初认为最好的方法是让一个 cron 作业每分钟查询一次数据库,然后发送文本。但是,cron 作业是否适合可靠且大规模地执行此操作?此外,如果数据库变得太大,每分钟查询会花费太长时间吗?我还考虑使用 setInterval 每分钟运行一次查询。但是这两种方式都像是如果查询数据库需要更长的时间然后一分钟,它将尝试查询它两次并可能发送重复的消息或导致其他问题。其中一种是处理这种情况的好方法还是其他方法会更好?
解决方案
- 设置一个每分钟运行一次的 cron 作业,查询: ((locked:not_exists || locked: false) && record.time_to_send <= current_time)
- 现在在 cron 作业中保持一个标志“锁定”,只要记录即将被处理(或发送消息),该标志就设置为 true
您可能还想看看 AWS lambda 或 step 函数。
推荐阅读
- powershell - 在powershell中更改终端宽度时如何运行函数
- amazon-web-services - Amazon Cognito 用户池 - 设置用户 + 角色 + 权限
- database - MongoDB分片集群,平衡器关闭时的行为?
- amazon-web-services - AWS + Cloudflare | https 被重定向到 http
- python - Django Admin,ValidationError as flash?
- r - 在 r 中:选择具有预定义差异的案例对
- python - 在 Python 中异步编写 CSV 文件
- html - 当视口通过实用程序类达到一定宽度时,缩小引导按钮和输入字段的大小
- google-chrome - 从 chrome 扩展获取所有在 chrome 浏览器上登录的帐户
- spring-webflux - Spring Data Reactive R2DBC 分页