要求项目所有接口要求同时支持同步和异步调用

2023-01-31 14:36:26 +08:00
 q1angch0u

大佬们怎么看......

2098 次点击
所在节点    问与答
28 条回复
guisheng
2023-01-31 14:43:45 +08:00
同步接口不变,异步统一使用消息队列接收处理。
hhjswf
2023-01-31 16:25:44 +08:00
异步调用是啥意思?接口结果以回调的方式返回嘛
q1angch0u
2023-01-31 17:11:15 +08:00
@hhjswf 目前还不是回调,调用方得依靠查询接口实现异步任务结果、进度的查询。
vagusss
2023-01-31 17:17:44 +08:00
为啥这么干
yeqiu
2023-01-31 17:20:42 +08:00
获取数据也异步吗?
这太可怕了吧
RightHand
2023-01-31 17:23:58 +08:00
异步首先是回调地狱,务必使用自带协程的语法的语言
zeonll
2023-01-31 17:24:24 +08:00
背景是什么。不说背景说需求统统刷流氓
ffw5b7
2023-01-31 17:24:43 +08:00
进度?各个业务不一样,那就是日志 /链路追踪咯?
sleeepyy
2023-01-31 17:26:22 +08:00
接口全都写异步的,需要同步的时候就 block_on(api)
nothingistrue
2023-01-31 17:39:54 +08:00
要求所有接口都异步还说得过去,要求同时支持同步和异步,这脑袋是被驴踢了。

同步还是异步,要综合考虑业务要求和性能要求的,都支持没有技术性错误,但是开发成本太高了,一般都是单接口二选一。总体上可能会是部分接口同步,部分接口异步。

所有接口都异步,也是不现实的,这样被调用方是方便了,调用方就要吃屎了。
nothingistrue
2023-01-31 17:43:31 +08:00
@RightHand #6
@ffw5b7 #8
@sleeepyy #9

这既然说得是接口,那就是跨系统的远程异步,不是客户端或语言内部的异步调用,这玩意不管是回调还是 wait 转同步,都难度更大。
q1angch0u
2023-01-31 18:42:58 +08:00
@zeonll 没有啥背景,平台的功能不重要,我就想讨论 [所有接口必须同时支持异步 /同步调用] 这件事儿…
q1angch0u
2023-01-31 18:43:45 +08:00
@sleeepyy #9 我目前就是这么实现的……
q1angch0u
2023-01-31 18:44:47 +08:00
@yeqiu 是的,我也觉得很可怕……
@vagusss #4 不知道,我没有很好的点去反驳 leader ,所以来这问问各位的看法。
IvanLi127
2023-01-31 19:42:41 +08:00
这事在某些情况下确实有必要,这样就能 既要又要 了
q1angch0u
2023-01-31 19:49:52 +08:00
@IvanLi127 比如有一个获取用户信息的接口,我实在想不通为何需要异步获取…能请教一下吗?
jones2000
2023-01-31 23:14:47 +08:00
说实话, 没什么好讨论的, 根据 leader 的意思搞就行了,反正你不做整体构架, 出了问题有人背锅,垒代码就是了。
GeruzoniAnsasu
2023-01-31 23:27:08 +08:00
你有没有想过这样一个怼点:

所有的同步调用都可以在调用方而不是接口处实现。
IvanLi127
2023-02-01 01:23:58 +08:00
@q1angch0u 异步接口慢的话,至少能少吃点 cpu 吧。
jink2018us
2023-02-01 01:32:46 +08:00
同步方法 1 个=异步方法 3 个(发起,回调 /轮询,取消)
让老板再招 2 个人或工期 X3
为屎山添砖加瓦,咱不劳心

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/911941

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX