gpt4 book ai didi

go - 我应该在 hystrix.Do 的 hystrix-go 包的运行参数中使用哪个 ctx?来自上层的 ctx,还是 context.Background()?

转载 作者:行者123 更新时间:2023-12-01 21:17:57 26 4
gpt4 key购买 nike

其中ctx我应该在 run 中使用吗? hystrix.Do的参数hystrix-go的功能包裹? ctx从上层,还是 context.Background()?
谢谢。

package main

import(
"context"

"github.com/myteksi/hystrix-go/hystrix"
)

func tb(ctx context.Context)error{
return nil
}

func ta(ctx context.Context){
hystrix.Do("cbName", func()error{
// At this place, the ctx parameter of function tb,
// Should I use ctx from ta function, or context.Background()?
return tb(ctx)
}, nil)
}


func main(){
ta(context.Background())
}

最佳答案

如果您使用上下文,在我看来您应该使用 hystrix.DoC .没有理由使用任何上下文,因为 Do是同步的,并且您希望在此代码中保留任何取消、截止日期(以及附加到您的上下文的任何其他内容)。

func ta(ctx context.Context) {
err := hystrix.DoC(ctx, "cbName", func(ctx context.Context) error {
... code that uses ctx here.
}, nil)
// handle err, which may be a hystrix error.
}

很难说这与调用 hystrix.Do 是否真的不同。 ,但这可能允许 hystrix 使用您的上下文,添加截止日期/取消本身。

关于go - 我应该在 hystrix.Do 的 hystrix-go 包的运行参数中使用哪个 ctx?来自上层的 ctx,还是 context.Background()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61359258/

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