【问题标题】:Redis queue to handle asynchronous task in Rails在 Rails 中处理异步任务的 Redis 队列
【发布时间】:2017-09-30 20:41:46
【问题描述】:

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

一种方法是在 sidekiq 队列中推送作业。还有其他方法可以做到这一点吗?使用 SQS/RabbitMQ 是不是更优雅,因为我可能需要执行 2-3 次操作(发送通知、保存数据分析等)?

谢谢,

编辑: Redis + Sidekiq 完成了这项工作。在这里,Redis 用作消息队列,Sidekiq 在后台处理这些消息。我很想知道,通过 Redis + Sidekiq 选择显式代理(例如 RabbitMQ、SQS、Redis PubSub)有哪些用例和好处?

【问题讨论】:

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


    【解决方案1】:

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

    我做了一些研究,发现this

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

    【讨论】:

      猜你喜欢
      • 2015-11-14
      • 2015-01-25
      • 1970-01-01
      • 2013-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多