Laz*_*dis 19 ruby caching ruby-on-rails couchbase
我有以下测试代码:
def loop_bucket_gets
bucket = Couchbase::Bucket.new({:node_list => ['xxx.xxx.xxx.xxx:8091', 'yyy.yyy.yyy.yyy:8091'],
:bucket => 'Foo',
:pool => 'default',
:expires_in => 1.day,
:default_format => :marshal,
:key_prefix => '_foo'
})
i = 0
loop do
begin
i += 1
bucket.get "ABC#{i}"
rescue ::Couchbase::Error::Base => e
nil
end
end
end
Run Code Online (Sandbox Code Playgroud)
当我在rails控制台中执行该方法时,内存泄漏.
我正在使用:
有任何想法吗?
更新:已 创建问题:https: //www.couchbase.com/issues/browse/RCBC-187
小智 0
您的循环中没有终止条件,因此它将永远运行并导致您提到的内存问题。您应该在循环中添加相关break条件并测试它是否可以解决问题。
def loop_bucket_gets
bucket = Couchbase::Bucket.new({:node_list => ['xxx.xxx.xxx.xxx:8091', 'yyy.yyy.yyy.yyy:8091'],
:bucket => 'Foo',
:pool => 'default',
:expires_in => 1.day,
:default_format => :marshal,
:key_prefix => '_foo'
})
i = 0
loop do
begin
i += 1
bucket.get "ABC#{i}"
break if YOUR_TERMINATING_CONDITION
rescue ::Couchbase::Error::Base => e
nil
end
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
502 次 |
| 最近记录: |