登录
首页 >  Golang >  Go问答

配置 DynamoDB 查询操作的超时设置

来源:stackoverflow

时间:2024-02-17 22:18:21 464浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《配置 DynamoDB 查询操作的超时设置》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

问题内容

我想在 go 中从 dynamodb 获取项目时设置超时。我尝试为 http.client 提供 500 毫秒超时,但没有成功。

这是我配置超时的方法。但是当我使用 getitem 时,它就挂在那里。

func LocalDynamo() *dynamodb.DynamoDB {
    creds := credentials.NewStaticCredentials("123", "123", "")
    awsConfig := &aws.Config{
        Credentials: creds,
        Region:      aws.String("us-east-1"),
        Endpoint:    aws.String("http://127.0.0.1:8001"),
        HTTPClient: &http.Client{
            Timeout: 500 * time.Millisecond,
        },
    }
    awsSession := session.Must(session.NewSession(awsConfig))
    return dynamodb.New(awsSession)
}

解决方案


您可以使用带有超时的上下文。

ctx, cancel := context.WithTimeout(context.TODO(), 500*time.Millisecond)
defer cancel()

getOuput, err := c.GetItemWithContext(aws.Context(ctx), input)

参见:https://docs.aws.amazon.com/sdk-for-go/api/service/dynamodb/#DynamoDB.GetItemWithContext

不过,您的请求不应花费 500 毫秒。 dynamodb 似乎相当慢。

今天关于《配置 DynamoDB 查询操作的超时设置》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>