ruby-on-rails - Rails中Redis队列处理异步任务

标签 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)的用例和好处是什么?

最佳答案

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

我做了一些研究,发现 this .

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

关于ruby-on-rails - Rails中Redis队列处理异步任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43752882/

相关文章:

mongodb - MongoDB和Redis有什么区别?

c# - basic.Nack 未被处理

ruby-on-rails - Draper 装饰器以及在应用程序 Controller 上使用方法

ruby-on-rails - RSpec Controller 测试失败 - 如何加载模拟数据?

ruby-on-rails - Rails 验证对象中的所有属性

django - 使用 RabbitMQ 的 Amazon Elastic Beanstalk 上的 Celery 超时异常

python - Celerybeat 没有按预期工作

ruby-on-rails - 无法将 Rails 6 应用程序上的 TailwindCSS 部署到 Heroku

heroku - Vanity 未在 Heroku 上使用 Redis to Go 服务器

php - 根据各种过滤条件匹配特定广告