rest – golang:监视工作者goroutine的Web服务
发布时间:2020-12-16 09:23:46 所属栏目:大数据 来源:网络整理
导读:假设我正在golang中编写REST Web服务.在内部,我有几个工作goroutine做事情.这样的goroutine是由HTTP API按需触发的.当然,我想以某种方式监控这些goroutines的进展.通常会有一个goroutine发送更新,错误等的通道.主程序会在这些通道上进行选择. 但是,因为主程
假设我正在golang中编写REST Web服务.在内部,我有几个工作goroutine做事情.这样的goroutine是由HTTP API按需触发的.当然,我想以某种方式监控这些goroutines的进展.通常会有一个goroutine发送更新,错误等的通道.主程序会在这些通道上进行选择.
但是,因为主程序的偶数循环忙于http.ListenAndServe(),所以我看不到实现此目的的方法.鉴于这似乎是一个非常普遍的问题,我想知道是否存在我缺少的设计模式. [编辑] 当某个HTTP请求进入时,会触发此DoSomething().但我没有上下文来调查状态.目前我的愚蠢计划是在下一个HTTP请求进入时轮询通道输入.这应该足够但不理想 – 我想知道该goroutine正在发生什么. 解决方法
启动一个Go例程来专门运行包含监视的select,将select放入它自己的for循环中:
func main() { go func() { for { select { //TODO: Insert Code Here? } } }() err := http.ListenAndServe() if err != nil { //TODO: } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |