我正在构建一个可扩展的 Rails 应用程序。当用户对应用程序执行操作时,我会以 200
状态进行响应,然后根据用户操作将一些分析数据异步推送到 DynamoDB。
一种方法是将作业推送到 sidekiq 队列中。还有其他方法可以做到吗?使用 SQS/RabbitMQ 是否是更优雅的方式来执行此操作,因为我可能必须执行 2-3 个操作(发送通知、保存数据分析等)?
谢谢,
编辑: Redis + Sidekiq 完成这项工作。在这里,Redis 充当消息队列,Sidekiq 在后台处理这些消息。我很想知道,通过 Redis + Sidekiq 选择显式代理(例如 RabbitMQ、SQS、Redis PubSub)的用例和好处是什么?
最佳答案
你说得对,SQS/RabbitMQ 是更好的选择。但还有更多..
我做了一些研究,发现 this .
据此,kafka在性能方面更好。它还提供了流数据处理框架kafka-streams (如果您想在推送到 DynamoDB 之前对数据进行小的转换)。
关于ruby-on-rails - Rails中Redis队列处理异步任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43752882/