【问题标题】:Do constants stay the same for ALL users?常量对所有用户都保持不变吗?
【发布时间】:2016-04-20 18:52:19
【问题描述】:

我有一个自己构建的网络应用程序。它与 Salesforce API 通信。我有用户和管理员。与 API 的所有连接都使用相同的凭据。

我担心我的 API 连接会被创建多次,因为每个登录的管理员都有自己的连接实例。

如果我保持 API 连接不变,是否所有其他会话/用户都可以访问该确切连接,或者我必须为每个用户连接,或者我如何为所有用户共享一个 API 连接?

【问题讨论】:

  • Salesforce 的 API 不就是一个 HTTP API 吗?

标签: ruby-on-rails ruby api ruby-on-rails-4


【解决方案1】:

无状态 API 永远不会有持久连接,因此将它们保存在常量中是没有用的。根据定义,每个 HTTP 请求都是一个单独的 TCP 连接。

只有数据库或 Websocket 连接之类的东西会持续存在,如果您需要管理这些连接池,则需要连接池,而不是简单的常量。如果连接失败,则需要更换它,并且如果有多个线程可能需要它,则必须正确处理获取和锁定。

根据需要创建您的 API 连接器。除非您有可衡量的性能问题,否则不要担心。

【讨论】:

    【解决方案2】:

    Ruby 常量就像一个变量,只是它的值应该在程序运行期间保持不变。 Ruby 解释器实际上并不强制常量的恒定性,但它会在程序更改常量的值时发出警告。

    参考:http://rubylearning.com/satishtalim/ruby_constants.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-27
      • 2011-11-16
      • 1970-01-01
      • 2012-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多