之情况:
功能A() - >创建消息并将消息放入队列
听众 - >如果队列中有消息并将其发送到服务,则不断检查 处理它并获得结果并将结果插入db
功能B() - >从db
获取结果假设服务的结果尚未出现并且函数b()现在被调用,则消息id的记录将从db返回null,因为尚未插入结果。
你如何处理这样的场景?
答案 0 :(得分:3)
如果功能B依赖于服务完成处理,那么它也应该在消息队列中运行。
当服务完成时,它应该将新消息写入另一个队列。另一个听众应该拿起它并调用功能B.
如果功能B由用户界面手势启动,则UI只需传达所需的流程尚未完成,并禁止该操作,直到它完成为止。