猿问

请问swoole能否使用在同步的业务逻辑上?

swoole的协程是能达到异步IO的性能,但相比异步IO和多线程来讲,swoole协程是以同步编码方式来实现,而非回调方式。

问题:

如果现在的业务逻辑是同步的(例如:先查询Mysql获取某条记录的ID,再根据此ID去查询redis的某条记录),那么能否使用swoole协程实现呢?

PS :

据我所知,swoole协程虽然是同步编码风格,但是其实是类似异步IO方式并发执行,所以很疑惑同步逻辑能否实现?,异步IO是在回调函数中又套回调函数,不好理解
蝴蝶不菲
浏览 461回答 3
3回答

杨__羊羊

可以的,同步的业务逻辑,异步执行的IO是不冲突的。 但是其实是类似异步IO方式并发执行 同一段业务逻辑里,有数据依赖的IO是不会并发执行的,但是不同业务逻辑里没数据依赖的IO才会并发执行。 例如: 先查询Mysql获取某条记录的ID,再根据此ID去查询redis的某条记录 必须要先查Mysql再查Redis,但是并发处理多个这样的请求时,多个Mysql查询就可以并发,多个Redis也可以并发。

呼啦一阵风

本来就有异步和同步。。普通的就是同步,除非你调异步接口

慕慕森

同步代码会阻塞Worker,得到的好处将只有持久化,而协程使用的是异步IO,不会阻塞Worker
随时随地看视频慕课网APP
我要回答