异步代码终于跑起来了

最近做的任务中,有一部分页面数据是分别从数十个第三方接口那里拿到数据,然后再返回到前端。

老大说这样对前端很不友好,本来应该放到一起,打包好之后再一起返回给前端,并发问题也应该交由后端自己处理。

想想也确实是这样。

那么问题来了:如何在后端实现并发呢?

一个简单直接的思路是多线程,反正线程之间也无需共享数据,直接把结果塞到一个result里,打包返回给前端即可。

封装 Thread,start 之后再 join,然后直接返回结果数据。

另外一个思路是,使用协程,虽然速度略慢,但对资源的消耗比较少。

只是之前照着网上的说法将同步代码甩到线程中的小 demo 直接报错,一直百思不得其解。

不过,功夫不负有心人,这个问题终于还是被我给搞定了。

简单讲,这是 Django 中的一个坑:event loop 不能直接在主线程中调用。

所以解决方法很简单:使用新的线程生成 event loop 来使用。


不知是该恭喜,还是该怎样,总之阅读到该文的,你是第 人。每一次刷新,都是不同的自己。