V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
barfi1316
V2EX  ›  程序员

请教如何在时序图标识应答超时交互

  •  
  •   barfi1316 · 90 天前 · 921 次点击
    这是一个创建于 90 天前的主题,其中的信息可能已经有所发展或是发生改变。

    image-20240128102058999.png

    大概的流程如上图,请求从 APP 到平台,再到设备,都是同步阻塞操作,由于 4G 网络环境或整车状态,平台没有及时收到应答,同时平台设置 10 秒的超时时间,请问大家在时序图里如何把超时这个交互表现出来?

    谢谢!

    7 条回复    2024-01-31 15:31:19 +08:00
    ashuai
        1
    ashuai  
       90 天前
    用 mqtt 就是异步。
    小程序 2 条异步线程,一个管发,一个管收。
    TBox 收到指令,同步执行,然后应答
    kuituosi
        2
    kuituosi  
       90 天前
    超时就是本地异步检查
    比如 4 超时没有返回,那么就是 2 的位置一个虚线半弧线指向自己
    barfi1316
        3
    barfi1316  
    OP
       90 天前
    @ashuai 虽然平台是通过 mqtt 异步发送报文给设备,但是平台也是起了线程监听设备的应答报文,收设备应答报文后,再返回 http 应答给 APP 。但是平台线程监听设备应答的有超时时间,这个超时如何体现在交互呢?
    barfi1316
        4
    barfi1316  
    OP
       90 天前
    @kuituosi 的确是平台起了线程监听设备的应答,但是不太理解你说的“虚线半弧线指向自己”是怎么画?有劳批个图学习下,THX
    ashuai
        5
    ashuai  
       89 天前
    @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)]
    barfi1316
        6
    barfi1316  
    OP
       88 天前
    @ashuai #5 参考你的图,在第 4 步加一个 opt[timeout] 就可以表达出来了,另外 mermaid 画出来的图挺不错的,马上学习下,谢谢你!
    yusheng88
        7
    yusheng88  
       87 天前 via Android
    时序图,应该用于体现业务执行顺序,感觉代码细节的分支和异常处理,没必要画
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   871 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 20:15 · PVG 04:15 · LAX 13:15 · JFK 16:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.