运行延迟的工人最终出现Dalli错误

以下是gem和rails版本:

宝石:

  

delayed_job(4.1.5)

     

dalli(2.7.8)

memcached -h |头-1

  

memcached 1.4.25

铁路

  

Rails 5.1.5

我通过此文件./bin/delayed_job run运行延迟的工作程序 看起来像这样:

require File.expand_path(File.join(File.dirname(__FILE__),'..','config','environment'))
require 'delayed/command'
Delayed::Command.new(ARGV).daemonize

运行命令时出现错误:error log

高速缓存存储区配置如下: config.cache_store = :dalli_store,'localhost:11211'

我已连接到内存缓存服务器

abv@abv:~/git/csrhub-frontend$ telnet localhost 11211
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
stats
STAT pid 25174
STAT uptime 197
STAT time 1573225519
STAT version 1.4.25 Ubuntu
STAT libevent 2.0.21-stable

ti似乎有用。

然后我尝试从Rails控制台获取数据:

irb(main):004:0> Rails.cache.dalli.set('spree/app_configuration/admin_path','/some/path')
=> 216172782113783808
irb(main):005:0> Rails.cache.dalli.fetch('spree/app_configuration/admin_path')
=> "/some/path"
irb(main):006:0> Rails.cache.dalli.flush
=> [true]
irb(main):007:0> Rails.cache.dalli.fetch('spree/app_configuration/admin_path')
=> nil

似乎可行。我找不到问题。 任何想法都非常欢迎! 谢谢。

我在两次缓存写入之间打印了Dalli::Client

#<Dalli::Client:0x0000000009104038 @servers=["memcached:11211"],@options={:compress=>nil},@ring=#<Dalli::Ring:0x000000000a3ab510 @servers=[#<Dalli::Server:0x000000000a3ab7e0 @hostname="memcached",@port=11211,@weight=1,@socket_type=:tcp,@fail_count=0,@down_at=2019-11-08 19:16:10 +0000,@last_down_at=2019-11-08 19:16:10 +0000,@options={:down_retry_delay=>60,:socket_timeout=>0.5,:socket_max_failures=>2,:socket_failure_delay=>0.01,:value_max_bytes=>1048576,:error_when_over_max_size=>false,:compressor=>Dalli::Compressor,:compression_min_size=>1024,:compression_max_size=>false,:serializer=>Marshal,:username=>nil,:password=>nil,:keepalive=>true,:sndbuf=>nil,:rcvbuf=>nil,:compress=>nil},@sock=nil,@msg="closed stream",@error="IOError",@pid=nil,@inprogress=false,@lock=#<Monitor:0x000000000a3ab3f8 @mon_owner=nil,@mon_count=0,@mon_mutex=#<Thread::Mutex:0x000000000a3ab380>>,@version="1.5.16">],@continuum=nil,@failover=true>>
ZCY_1234X 回答:运行延迟的工人最终出现Dalli错误

已通过在延迟的工作本身中重新初始化Dalli cahce解决了该问题。

connection = Dalli::Client.new Environment.config('cache_store')['host'].to_s + ':' + Environment.config('cache_store')['port'].to_s

工作人员似乎没有正确加载环境。

本文链接:https://www.f2er.com/3136926.html

大家都在问