我正在使用Vanity gem进行A / B测试,它在本地运行良好。
在我们的EC2实例上,当启用虚荣时,rails拒绝启动。
我已经能够通过为我的本地Redis安装提供不正确的详细信息来在本地重新创建该问题。
我已经尝试了几种设置的排列,我希望这两种设置可以使用;
staging:
adapter: redis
connection: redis://my-name.id.0001.use1.cache.amazonaws.com:6379/0
和
staging:
adapter: redis
connection: redis://my-name.id.0001.use1.cache.amazonaws.com:6379
当我登录服务器时,我可以运行redis-cli -h my-name.id.0001.use1.cache.amazonaws.com
并立即连接。
我很确定这应该可行,因为this person能够使用Heroku设置(只使用我上面使用的外部URL)
以下是部署服务器时收到的错误消息。 job_options.rb
是我的测试实验,它在开发中运行良好。
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/experiment/base.rb:24:in `eval'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/experiment/base.rb:24:in `block in load'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/experiment/base.rb:22:in `instance_eval'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/experiment/base.rb:22:in `load'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/playground.rb:248:in `block in set_experiments'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/playground.rb:247:in `each'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/playground.rb:247:in `set_experiments'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/playground.rb:26:in `initialize'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/vanity.rb:133:in `new'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/vanity.rb:133:in `load!'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/vanity.rb:123:in `playground'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/adapters/redis_adapter.rb:219:in `rescue in call_redis_with_failover'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/adapters/redis_adapter.rb:216:in `call_redis_with_failover'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/adapters/redis_adapter.rb:105:in `set_experiment_created_at'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/experiment/base.rb:159:in `save'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/experiment/ab_test.rb:451:in `save'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/experiment/definition.rb:21:in `define'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/experiment/ab_test.rb:571:in `ab_test'
./experiments/job_options.rb:1:in `new_binding'
答案 0 :(得分:1)
看起来这是Vanity 2.0中的回归,在修复发布之前,您只需用connection
键替换虚荣配置中的url
键,例如:
staging:
adapter: redis
url: redis://my-name.id.0001.use1.cache.amazonaws.com:6379/0
这些密钥会传递到各个适配器,而ruby Redis client会接受url
。