为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
蝴蝶不菲 2019-03-16 09:58:19
swoole的协程是能达到异步IO的性能,但相比异步IO和多线程来讲,swoole协程是以同步编码方式来实现,而非回调方式。 问题: 如果现在的业务逻辑是同步的(例如:先查询Mysql获取某条记录的ID,再根据此ID去查询redis的某条记录),那么能否使用swoole协程实现呢? PS : 据我所知,swoole协程虽然是同步编码风格,但是其实是类似异步IO方式并发执行,所以很疑惑同步逻辑能否实现?,异步IO是在回调函数中又套回调函数,不好理解
查看完整描述

3 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

可以的,同步的业务逻辑,异步执行的IO是不冲突的。

但是其实是类似异步IO方式并发执行

同一段业务逻辑里,有数据依赖的IO是不会并发执行的,但是不同业务逻辑里没数据依赖的IO才会并发执行。

例如:

先查询Mysql获取某条记录的ID,再根据此ID去查询redis的某条记录

必须要先查Mysql再查Redis,但是并发处理多个这样的请求时,多个Mysql查询就可以并发,多个Redis也可以并发。

查看完整回答
反对 回复 2019-03-18
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

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

查看完整回答
反对 回复 2019-03-18
?
慕慕森

TA贡献1856条经验 获得超17个赞

同步代码会阻塞Worker,得到的好处将只有持久化,而协程使用的是异步IO,不会阻塞Worker

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 460 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信