对于所有用户,常量是否保持不变?

时间:2016-04-20 18:52:19

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

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

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

如果我将API连接保持为常量,那么所有其他会话/用户是否可以访问该确切的连接,或者是否必须为每个用户连接,或者如何为所有用户共享一个单独的API连接?

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:-1)

Ruby常量就像一个变量,除了它的值应该在程序的持续时间内保持不变。 Ruby解释器实际上并不强制执行常量的常量,但如果程序更改常量的值,它会发出警告。

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

相关问题