是否应该在http请求goroutine之外处理所有独立任务?

paulkon:

由于golang在单独的goroutine中处理传入的请求,因此我不清楚应由消息队列(例如NSQ使用者)将哪些类型的任务推迟处理,以及应在http request goroutine中处理哪些类型的任务。

captncraig:

由于net/http软件包运行每个请求,因此您不必担心会阻塞请求goroutine。您应该问自己的真正问题是:“在我将响应返回给客户之前是否需要执行此操作,否则可以将其推迟到以后再进行”。通常,如果我需要从数据库中获取内容以提供响应,该响应将阻止请求goroutine,那就可以了。如果我现在可以返回响应并将消息放在队列中以备后用,那也可以。

由于请求goroutine几乎不存在任何开销,并且与其他请求隔离,因此您实际上不必为此担心太多。做对客户有意义的事情。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是否应该在每个请求上加载所有依赖项?

Presenter是否应该在Android MVP设计架构中处理View的所有事件?

我应该在程序包级别但在http处理程序之外声明变量吗?

是否应该在REST API PUT请求中传递资源及其相关资源的所有字段?

Return语句是否应该在关键部分之外?

是否应该在阻止来自通道的for-select循环时将请求对象传递给goroutine?

是否应该在 HTTP 同步请求中交换自生成的事务 ID

如果可以在客户端处理对 API 的错误请求,是否应该在那里处理?

是否应该在useCallback中包装组件中定义的所有函数?

是否应该在Kafka集群中的所有代理节点之间复制主题分区?

是否应该在变量的所有设置上使用InterlockedExchange?

PATCH方法是否应该在响应正文中返回资源的所有字段?

是否应该在小黄瓜中验证屏幕上可见的所有字段?

您是否应该在构造函数中定义组件状态的所有属性?

是否应该在角度服务中定义所有RESTful API调用?

是否应该在接口中声明所有公共方法?

是否应该在通过Terminal运行的所有程序中使用Shebang行?

正确的编程-函数是否应该在所有代码路径上返回值?

javac是否应该在同名匿名类之外找到方法?

实体框架,Fluent API映射,是否应该在OnModelCreating之外的其他地方进行?

Arquillian Suite扩展-我们是否应该在Suite中添加所有测试类

我应该在香草Django中处理Ajax请求还是在Django其余部分处理?

应该在 angular 中使用哪个函数来处理 api post 请求?

面板是否应该在框架内部?

我们应该在HTTP / 2中复用多少个并发请求

是否应该在UIAlertAction的处理程序中将self捕获为强者?

JSF是否应该在Ajax重新渲染上处理未渲染的组件?

“ using”指令应该在名称空间之内还是之外?

defaultProps应该在类主体之外声明