gpt4 book ai didi

node.js - 如何使用 nodejs cron 作业制作计划报告功能? (aws 自动缩放问题)

转载 作者:行者123 更新时间:2023-12-04 08:28:19 26 4
gpt4 key购买 nike

我正在研究“计划报告”功能,但由于 AWS 自动缩放功能而面临问题。
这就是我执行此功能的方式:
第 1 步:用户将提供“小时”、“分钟”和“每日报告或不报告标志”作为后端的输入。
第 2 步:后端将进行 cron 作业,将“cron job id”存储在数据库中,并根据 cron 作业计划通过邮件将报告发送给用户。
问题:如果服务器关闭然后重新启动;然后根据启动脚本,所有 cron 作业都将启动...现在,如果我的服务器负载很重,那么 AWS 自动扩展将启动,并在每个 EC2 实例上执行启动脚本,并且将执行相同的 cron 作业在不同的实例上运行。
因此,相同的 cron 作业将在不同的 EC2 实例上运行,因此用户将多次收到相同的电子邮件(这是我面临的错误,如何解决此问题)
到目前为止我的想法:我们可以在数据库中存储一个标志,如果标志为真,则 cron 作业将启动,否则不会启动。因此,如果一个 ec2 实例正在运行 cron 作业,它会将标志设置为 true,然后其他实例将不会启动它。但问题是如何在服务突然关闭或其他情况下取消设置标志。
我无法在网上找到这种基于建筑设计的问题的答案。上述方法是否实用;如果那么如何正确地做到这一点?实现这些架构的最佳方法是什么?任何帮助都会很棒,谢谢!

最佳答案

我遇到了同样的问题。
您可以通过以下两种方式:

  • 您可以运行专用于 cron 作业的单独 ec2 实例(具有垂直扩展)。
  • 您可以存储实例 ID 和 cron 作业状态以匹配正在运行的 cron 作业实例
  • 关于node.js - 如何使用 nodejs cron 作业制作计划报告功能? (aws 自动缩放问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65147581/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com