redis - 如何设计来自 SQS 的自动分配内容?

标签 redis architecture amazon-sqs system-design

我已经构建了负责在将传入内容传送到主应用程序之前对其进行审核的应用程序。在有人分享了一个警报后,它就进入了 sqs-in-queue。我的应用程序有一个单独的容器,负责执行后台任务,包括检查队列中是否有新消息。

一旦消息进入系统,它就会存储在 dynamo 数据库中,相应的 Web 套接字消息会发送到前端,通知新警报已到达。

用户可以登录系统,分配警报并调节警报。 结果将保存到数据库中,审核内容将发送到 sqs-out。

我想实现自动分配功能。作为一名主持人,一旦我启动了我的审核时钟,我应该会看到一个自动分配给我的警报。如何设计该功能?

据我所知,我需要跟踪某个数据库中的所有活跃用户(选择哪个数据库?)并能够将传入的内容分配给免费的用户。

任何想法将不胜感激。

最佳答案

诀窍是有一个“可分配”的工作队列,在项目存储在发电机中后排队。就像您的传入工作队列一样,您需要一项“可分配”工作。客户端可以在启动时请求工作,应用程序将轮询队列,寻找可分配的工作。当他们完成任务时,重新轮询队列以获取下一个可用任务。

关于redis - 如何设计来自 SQS 的自动分配内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55824569/

相关文章:

redis - Booksleeve Redis 开发指南

spring-boot - Lettuce无法连接到docker redis

.net - Wcf、ASP.NET MVC 组合?我真的需要它吗?

web-services - ETL 的微服务架构

amazon-web-services - 如何在 AWS CloudWatch 中为 AWS SQS 添加偶数模式

amazon-web-services - 在 SQS lambda 环境中扇出的推荐方法是什么?

Redis INCR 和多进程?

docker - 如何使用Kubernetes statefulset调整Redis配置?

c# - 使用 ninject 创建初始化后对象

mysql - NodeJS 和 MySQL : getting array data inside query callback