【发布时间】:2021-04-27 14:49:14
【问题描述】:
我需要使用外部任务管理器构建一个长时间运行的任务服务。 它通过 2 个通道与用户通信:http\websocket 和通过 http\RMQ 与任务管理器
通信模式是:
- 用户发送任务创建请求
- 我的服务将其发送给外部任务管理器
- 接收任务管理器的响应并进行一些任务数据后处理
- 使用“taskId”向用户发送响应
- 用户等待任务事件并更新任务状态
问题是在某些情况下(当任务失败或它非常简单时)任务事件非常快地到达我的服务,直到用户的请求完成,因为后处理可能比任务执行需要更长的时间(尤其是在失败的情况下)。
所以问题是:如何在我的服务响应用户后保证发送事件? 现在我只是使用延迟,但猜测这不是最佳实践,因为当连接不佳时,我的延迟可能不够。
沟通的视觉图:
【问题讨论】:
标签: architecture rabbitmq