-1

我想知道解决这种情况的最佳策略是什么,假设我有这个动作:

class BetsController < ApplicationController
  def create
    @bet = Bet.new(params[:bet])
    # some other operation
  end
end

有时我会收到大量关于此操作的调用,我可能会丢失数据,我应该每次都生成一个线程吗?有什么建议么?

4

1 回答 1

0

缩放是一个相当大的话题,提供一个完全适合您需求的答案是不可能的。

但只是为了让你开始:

  • 如果操作本身需要很长时间才能执行,那么您应该考虑进行一些离线工作 - 本质上您应该保存所需的信息并让一些离线工作人员运行所有队列请求并一次处理一个。这种方法可能需要重新设计您的应用程序。您应该考虑用户如何在他们可能失败或返回某些结果的情况下获得有关其操作的反馈。
  • 如果操作非常短并且这只是负载问题,那么您应该考虑其他扩展方法 - 带有负载平衡的附加服务器等。

我知道这远非完整的答案,但这是一个非常大的话题......

于 2012-08-14T10:25:20.297 回答