Redis队列在Rails中处理异步任务

时间:2017-05-03 06:42:16

标签: ruby-on-rails redis rabbitmq sidekiq amazon-sqs

我正在构建一个可扩展的Rails应用程序。当用户对应用程序执行操作时,我将使用状态200进行响应,然后根据用户操作将一些分析数据异步推送到DynamoDB。

执行此操作的一种方法是在sidekiq队列中推送作业。有没有其他方法可以做同样的事情?使用SQS / RabbitMQ是更优雅的方式,因为我可能要做2-3次操作(发送通知,保存数据分析等)?

谢谢,

修改 Redis + Sidekiq完成了这项工作。在这里,Redis用作消息队列,Sidekiq在后台处理这些消息。我很想知道,在Redis + Sidekiq上选择显式代理(例如RabbitMQ,SQS,Redis PubSub)有什么用例和好处?

1 个答案:

答案 0 :(得分:-2)

你是对的,SQS / RabbitMQ是更好的选择。但还有更多..

我做了一些研究,发现this

据此, kafka在性能方面更胜一筹。它还提供了一个流数据处理框架kafka-streams(如果您想在推送到DynamoDB之前对数据进行小的转换)。