我有一个 SQS 队列(标准队列,不是 FIFO),我在一个长时间运行的进程中用作多个工作人员的任务队列。
我正在尝试添加一个“终止开关”,它会暂时阻止我的工作人员接收/处理任何消息。
我不想删除消息或阻止任何新消息进入队列,只是停止所有读者,直到我再次切换终止开关。
这可能与 SDK 相关吗?还是有权限?
最佳答案
我不知道有 sqs 暂停按钮,也没有看到任何看起来很有希望的 sqs API 调用。
您可以从允许读者阅读的 iam 策略中删除访问权限。
您可以在网络级别删除对 sqs 公共(public) ip 的访问。
但我讨厌那些解决方案;它们将失败场景与成功混为一谈,实际上并不比在应用程序中进行编排更优雅或更方便。
我建议我的工程师为此在 dynamo、consul 或其他一些一致的键值存储中使用功能标志。对我来说比在删除权限或网络访问权限时允许所有读取连续失败更有意义
关于amazon-web-services - 如何卡住 SQS 队列以防止任何读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41385901/