![](/img/trans.png)
[英]Can a rails model (or variable) be held in server memory and available to all sessions / jobs?
[英]Configuring a gem-based model to be available to all sessions in Rails
我目前正在使用mixpanel_client gem來訪問mixpanel API。 我希望能夠在一個地方做到這一點:
config = {'api_key' => 'changeme', 'api_secret' => 'changeme'}
client = Mixpanel::Client.new(config)
然后在整個應用中的任何位置訪問它。 有沒有慣用的(或框架式的)解決方案? 似乎每次我要發出請求時都這樣做,這是在浪費資源,而且啟動起來不是很干。
謝謝!
有幾種方法可以執行此操作,在Initializer文件夾下創建一個Initializer,以便在裝入rails之后將其裝入一次,然后
config = {'api_key' => 'changeme', 'api_secret' => 'changeme'}
CLIENT = Mixpanel::Client.new(config)
然后,CLIENT常數將在您的應用程序中的任何位置可用。
否則您可以創建一個類
class MixPanelClient
cattr_accessor: client
def self.client
client ||= begin
config = {'api_key' => 'changeme', 'api_secret' => 'changeme'}
Mixpanel::Client.new(config)
end
end
end
MixPanelClient.client只會創建一次該客戶端。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.