大概的流程如上图,请求从 APP 到平台,再到设备,都是同步阻塞操作,由于 4G 网络环境或整车状态,平台没有及时收到应答,同时平台设置 10 秒的超时时间,请问大家在时序图里如何把超时这个交互表现出来?
谢谢!
1
ashuai 2024-01-28 12:53:47 +08:00
用 mqtt 就是异步。
小程序 2 条异步线程,一个管发,一个管收。 TBox 收到指令,同步执行,然后应答 |
2
kuituosi 2024-01-28 14:02:08 +08:00
超时就是本地异步检查
比如 4 超时没有返回,那么就是 2 的位置一个虚线半弧线指向自己 |
![]() |
3
barfi1316 OP @ashuai 虽然平台是通过 mqtt 异步发送报文给设备,但是平台也是起了线程监听设备的应答报文,收设备应答报文后,再返回 http 应答给 APP 。但是平台线程监听设备应答的有超时时间,这个超时如何体现在交互呢?
|
![]() |
4
barfi1316 OP @kuituosi 的确是平台起了线程监听设备的应答,但是不太理解你说的“虚线半弧线指向自己”是怎么画?有劳批个图学习下,THX
|
5
ashuai 2024-01-29 22:53:15 +08:00
@barfi1316 #3 TBox 可能在第 9 秒收到指令,执行了 2 秒,在第 11 秒 reply ,然后发现你平台不理他了,这个时候你让他 rollback 吗?
[![]( https://mermaid.ink/img/pako:eNpVkb9OwzAQxl_F8tyG3UMHxFokREYvh31prcZ_sM9So6pPwJDXYKzEBO8T8Ro4CUHEk_37vu_Ourtw5TVywRO-ZnQKHwwcIljpAkQyygRwxIBBYsOt_35_G776tRYm7fNj6G93-6e6XqtqVOt7f5YOtrtdEAmdZsrqYitvJZwn03QzUdsJ4RnVAsZIxNB2LGLKLc0xWGIL9IFYykphStKxckozEEx7h9KVjrODjEWf6b8j-rZ9AXX6Y8sX18KjJ2TRHI7EfMNAVFX1W5dvuMVowegyxMvolpyOaFFyUa4a4kly6a7FB5n8c-cUFxQzbngOGmgZOBcNtKlQ1IZ83M9bmZZz_QEUu5cp?type=png)] |
![]() |
6
barfi1316 OP @ashuai #5 参考你的图,在第 4 步加一个 opt[timeout] 就可以表达出来了,另外 mermaid 画出来的图挺不错的,马上学习下,谢谢你!
|
7
yusheng88 2024-01-31 15:31:19 +08:00 via Android
时序图,应该用于体现业务执行顺序,感觉代码细节的分支和异常处理,没必要画
|