2 回答
TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果您使用上下文,在我看來(lái)您應(yīng)該使用hystrix.DoC. 除了通過(guò)的任何上下文之外,沒(méi)有理由使用任何東西,因?yàn)镈o它是同步的,并且您希望在此代碼中保留任何取消、截止日期(以及附加到您的上下文的任何其他內(nèi)容)。
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.
}
很難說(shuō)這是否真的與 call 不同hystrix.Do,但這可能允許 hystrix 使用您的上下文,添加截止日期/取消本身。
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
盡可能使用context.Context來(lái)自上層的參數(shù)作為參數(shù)。它允許端到端的機(jī)制來(lái)控制請(qǐng)求,調(diào)用者所要做的就是取消,或者在初始ctx時(shí)調(diào)用超時(shí),它將適用于完整的請(qǐng)求路徑。
傳遞的初始上下文可能取決于您的要求。如果您不確定最初要使用什么上下文,在您確定之前,context.TODO可能是一個(gè)不錯(cuò)的選擇。
- 2 回答
- 0 關(guān)注
- 136 瀏覽
添加回答
舉報(bào)
