< 返回版块

jmjoy 发表于 2020-01-08 10:19

首先这个图片服务是给nginx作为反向代理使用的,那协议是用什么好呢?我想到的是http2。 如果是用http2的话应该会用actix-web来搞,但是图片处理作为一种高cpu消耗的任务,理论上要用线程单独去处理,而且Rust现在也没有async/await版本的图片处理库。那么问题来了,如何保证这个图片处理服务的性能?

评论区

写评论
songzhi 2020-01-08 17:53

像这种CPU密集型任务,上异步也没用呀.就用spawn_blocking包一下就好了

phper-chen 2020-01-08 17:39

为啥非要用语言层面的异步呢 丢到消息中间件去让其他程序处理不是更好吗 简单问题没必要复杂化

phper-chen 2020-01-08 17:39

为啥非要用语言层面的异步呢 丢到消息中间件去让其他程序处理不是更好吗 简单问题没必要复杂化

作者 jmjoy 2020-01-08 10:47

没有async的图片处理库,理论上不能用spawn,要用spawn_blocking。然后async-std的新runtime的话就可以用spawn,好评! 对以下内容的回复:

Rynco Maekawa 2020-01-08 10:28

一点个人的思路:

  • 把需要大量计算的任务用 futures::task::spawn 放到调度器里并行计算
  • 在当前任务里 await 这个计算,这样在计算完成之前就这个任务就不会被调度到了
1 共 5 条评论, 1 页