3

我想在 Heroku 上配置一个 Play Framework 来使用 Memcached。

该线程建议我使用硬编码的配置值。Heroku 的文档指出用户/密码/主机作为环境变量公开......有没有办法告诉 Play 直接加载这些,而不使用硬编码值?

这是我尝试过的:

%prod.memcached=enabled
%prod.memcached.host=%MEMCACHE_SERVERS
%prod.memcached.user=%MEMCACHE_USERNAME
%prod.memcached.password=%MEMCACHE_PASSWORD

但它似乎不起作用

4

2 回答 2

2

我为您找到了解决问题的方法。在 Heroku 中,当您配置“Memcache Add On”时,它会为您提供以下环境变量。

${MEMCACHE_PASSWORD}       
${MEMCACHE_SERVERS}   
${MEMCACHE_USERNAME}

但是在设置 %prod.memcached.host=${MEMCACHE_SERVERS} 时,它还需要默认端口才能正常运行(即 ${MEMCACHE_SERVERS}:11211)。

因此,您可以通过执行以下操作添加额外的环境变量

  1. heroku config:add MEMCACHE_SERVER=${MEMCACHE_SERVERS}:11211在您的控制台中
  2. %prod.memcached.host=${MEMCACHE_SERVER}在你的 conf 文件中设置
  3. 重启你的应用

- -或者 - -

找出一种将端口(11211)附加到${MEMCACHE_SERVERS}conf文件中环境变量末尾的方法。我不知道该怎么做,因为“:”字符会在启动时引发异常。

我在 play 2.x 中遇到了同样的错误,但应该适用于 play 1.x。

于 2012-06-25T09:44:40.240 回答
0

尝试:

%prod.memcached.host=${MEMCACHE_SERVERS}
%prod.memcached.user=${MEMCACHE_USERNAME}
%prod.memcached.password=${MEMCACHE_PASSWORD}
于 2012-06-23T23:58:45.887 回答