gpt4 book ai didi

scala - 无法将环境变量放入 application.conf

转载 作者:可可西里 更新时间:2023-11-01 11:04:36 26 4
gpt4 key购买 nike

我正在使用 Scredis,一个 Scala Redis 库。要实例化 Redis 对象,我必须向它传递一个配置和配置值的路径。 (据我所知,没有其他方法可以为 Redis 对象提供其主机名和端口)

基本上,我需要将 Redis 端口和主机名存储在配置中。现在的问题是我正在尝试使用 Heroku 来部署它,并且主机名和端口都位于环境变量中。我了解到我可以从 application.conf 访问环境变量,但由于它们存储为一个长字符串,所以在将它传递给 Redis 对象之前我无法将其分解。我知道如何从代码中的 env var 中获取 env var,但是由于我无法直接传递它,所以我完全不知道如何执行此操作。

这是 Scredis 的配置信息:https://github.com/Livestream/scredis/wiki/Configuration

在 heroku 上为 java/scala 使用 redis-cloud: https://devcenter.heroku.com/articles/rediscloud#using-redis-from-java

最佳答案

根据these examplesscredis,也可以创建一个将配置放在代码中的客户端。

// Creates a non-blocking client with provided parameters, falling back to default
// configuration for non-provided parameters.
val clientWithParameters = Client(
host = "192.168.1.1",
port = 6380,
passwordOpt = Some("foobar")
)

因此,两者的伪组合可能是这样的:

val redisUri = URI( System.getenv("REDISCLOUD_URL") )
val redisClient = Client(
host = redisUri.getHost(),
port = redisUri.getPort(),
passwordOpt = redisUri.getPassword()
)

关于scala - 无法将环境变量放入 application.conf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28423220/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com