【问题标题】:Queuing incoming API requests in rails application在 Rails 应用程序中排队传入的 API 请求
【发布时间】:2013-06-26 04:46:37
【问题描述】:

我有一个平台,用户可以持续向其发送数据。 此数据由 Android App 同步发送,否则可能会发生未损坏状态。

当 API 调用失败(由于 Rails 中的异常)并且连续的 API 调用通过时,这种不损坏状态仍然出现。

因此,如果发生错误,我希望将每个用户的传入 API 请求排队。

对传入的 API 请求进行排队的最佳方式是什么? 1)像resque这样的宝石是否适合这个要求?如果是,每个用户都应该有一个自己的队列吗? 2) 或者在 Rails 的新模型中构建自己的队列是否更清洁、更简单?

【问题讨论】:

  • 您可以为此使用 redis list 并将列表名称 uniq 发送给每个指定的用户,并将数据推送到队列中,然后通过 resque 或任何其他工具在后台操作

标签: ruby-on-rails resque


【解决方案1】:

我建议使用名为 Event Machine 的 gem。

它是一个用于实时处理多个请求的 gem,具有多种配置选项和扩展能力,保持高性能和稳定性。

This 是 gem 的另一个官方网站。

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    感谢这两个答案。 最后我决定为每个用户建立自己的队列, 然后 delay_job 的工作人员将不断地通过这些队列。

    为了保持队列的迭代严格同步,我在队列中使用了锁定机制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-22
      • 2015-01-09
      • 2020-08-13
      • 2016-01-20
      相关资源
      最近更新 更多