Ruby on rails 在dally gem中,“;插座“最大故障”;不适用于写入和读取操作中的选项
我使用的是Dalli2.7.0 我遇到了一个无法访问memcache实例的问题。当触发set请求时,它应该在0.5秒内超时(默认超时),而dalli客户端会继续重试 在进一步调查中,我发现每次重试时都会重置失败计数 跟踪:Ruby on rails 在dally gem中,“;插座“最大故障”;不适用于写入和读取操作中的选项,ruby-on-rails,ruby-on-rails-3,memcached,dalli,Ruby On Rails,Ruby On Rails 3,Memcached,Dalli,我使用的是Dalli2.7.0 我遇到了一个无法访问memcache实例的问题。当触发set请求时,它应该在0.5秒内超时(默认超时),而dalli客户端会继续重试 在进一步调查中,我发现每次重试时都会重置失败计数 跟踪: lib/dalli/server.rb:methodwrite:line 532-The@sock.write超时 lib/dalli/server.rb:方法失败!:第209行-增加@fail_计数 lib/dalli/server.rb:方法失败!:第215行-Dalli
你们能帮我弄清楚吗。你们是否安装了memcached至少1.4版?如果是的话,你也可以发布Dalli在重新连接过程中生成的调试日志吗?@BoraMa:我使用的是memcache版本1.4.13。Dalli日志:Dalli::服务器#连接服务:11211服务:11211失败(计数:0)超时::错误:IO超时:{:主机=>“服务”,:port=>11211,:down\u retry\u delay=>1,:socket\u timeout=>0.0005,:socket\u max\u failures=>2,:socket\u failures\u delay=>0.01,:value\u max\u bytes=>1048576,:compression\u min\u size=>1024,:compression\u max\u size=>false,:serializer=>marshall,:username=>nil,:password=>nil,:keepalive=>true}上述日志行重复。失败计数始终为0。如果增加
套接字\u超时
,重新连接行为是否相同?你的当前值为0.0005,这意味着0.5微秒对我来说太低了。默认值为0.5秒。是的……即使是0.5秒,重新连接行为也相同。我在生产中遇到了默认设置的问题,然后开始研究这个问题。您能否将日志记录级别提高到:debug
,并发布所有与Dalli相关的日志消息?另外,如果Dalli的最新版本(2.7.6)仍然存在这种行为,我会尝试。