可扩展的事件调度器,可处理数十万个事件
Scalable event scheduler for possibly hundreds of thousands of events
我正在尝试构建一个餐厅预订应用程序。用户可以提前在餐厅预订 table,并会提前 30 分钟收到提醒。我计划使用 AWS SNS 发送提醒。我知道 AWS EventBridge 规则,但它限制为每条总线 300 条规则和每个账户 100 条事件总线。这使得在任何给定时间总共有 30000 条规则。解决方法可以是轮询工作人员,它会在 'n' 秒内继续查询数据库中的事件。除了支持数十万个事件的 AWS EventBridge 之外,是否还有任何基于事件的机制,或者基于轮询的实施是唯一的前进方向?
谢谢
我最终使用了基于轮询的方法。我使用了一个 t2 小型 EC2 实例和 2 个 SQS 队列。所有计划的事件都被推送到一个输入 SQS 队列。在 EC2 上运行的侦听器(python 脚本)每 1 分钟轮询一次队列。一旦检测到传入的事件计划,它就会被推送到本地 SQLite 数据库,其中事件的计划时间被索引。 EC2 侦听器还每隔一分钟轮询一次数据库,以检查需要触发的事件。然后将事件放入第二个 SQS 队列,并添加一个 lambda 函数以在 SQS 上触发。
我正在尝试构建一个餐厅预订应用程序。用户可以提前在餐厅预订 table,并会提前 30 分钟收到提醒。我计划使用 AWS SNS 发送提醒。我知道 AWS EventBridge 规则,但它限制为每条总线 300 条规则和每个账户 100 条事件总线。这使得在任何给定时间总共有 30000 条规则。解决方法可以是轮询工作人员,它会在 'n' 秒内继续查询数据库中的事件。除了支持数十万个事件的 AWS EventBridge 之外,是否还有任何基于事件的机制,或者基于轮询的实施是唯一的前进方向?
谢谢
我最终使用了基于轮询的方法。我使用了一个 t2 小型 EC2 实例和 2 个 SQS 队列。所有计划的事件都被推送到一个输入 SQS 队列。在 EC2 上运行的侦听器(python 脚本)每 1 分钟轮询一次队列。一旦检测到传入的事件计划,它就会被推送到本地 SQLite 数据库,其中事件的计划时间被索引。 EC2 侦听器还每隔一分钟轮询一次数据库,以检查需要触发的事件。然后将事件放入第二个 SQS 队列,并添加一个 lambda 函数以在 SQS 上触发。