gpt4 book ai didi

go - 如何在 Go 中延长上下文的超时时间?

转载 作者:行者123 更新时间:2023-12-01 20:08:38 27 4
gpt4 key购买 nike

例如,上下文创建时超时为 10 秒后。
一段时间后(例如 2 秒后),我想将其刷新为从此时起 10 秒后。

我能做什么?

最佳答案

context.Context 不是那样设计的。 context.Context被委派给 worker ,如果 worker 发现应该允许更多时间,它不能覆盖“主人的电话”。

如果您遇到的情况是要使用初始 10 秒超时,但是这 10 秒不是一成不变的(例如,它可能会在到期前更改),则不要使用具有 10 秒超时的上下文。而是使用带有取消功能的上下文: context.WithCancel() ,并自己管理 10 秒超时(例如使用 time.AfterFunc() 或使用 time.Timer )。如果超时已过期并且您(或您的工作人员)没有检测到它应该延长,请调用取消函数。

如果在截止日期之前检测到超时应延长,请重置计时器并且不要使用取消功能取消上下文。

关于go - 如何在 Go 中延长上下文的超时时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61455051/

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