【问题标题】:How do I get Vanity to connect to Elasticache instance如何让 Vanity 连接到 Elasticache 实例
【发布时间】:2016-01-11 17:06:16
【问题描述】:

我正在使用 Vanity gem 进行 A/B 测试,它在本地运行良好。

在我们的 EC2 实例上,启用 Vanity 时,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'

【问题讨论】:

标签: ruby-on-rails redis vanity


【解决方案1】:

看起来这是 Vanity 2.0 中的回归,在修复发布之前,您可以将 Vanity 配置中的 connection 键替换为 url 键,例如:

staging:
  adapter: redis
  url: redis://my-name.id.0001.use1.cache.amazonaws.com:6379/0

这些密钥被传递给各个适配器,ruby Redis client 接受 url

【讨论】:

    猜你喜欢
    • 2016-12-21
    • 2017-04-15
    • 2015-12-22
    • 2016-10-30
    • 1970-01-01
    • 2021-04-03
    • 2022-01-05
    • 2020-10-27
    • 2013-01-10
    相关资源
    最近更新 更多