我正在考虑创建一个执行长时间运行的Web服务。设计这些与负载均衡器配合使用的最佳方法是什么?除了编写自定义队列之外,我想不出任何方法。
答案 0 :(得分:1)
这正是你应该做的。您通常希望您的Web服务调用是快速请求/响应。因此,调用Web服务,让Web服务队列工作,然后让工作进程从队列中获取消息并处理它们。
这是要走的路,排队长时间运行的流程允许系统扩展,允许您在流程失败时添加恢复逻辑,允许您通过添加额外的工作人员来快速扩展以处理队列,最重要的是不会阻止客户等待回复。
REDIS(http://redis.io/)在过去几年中一直是我的选择,如果您使用Azure或AWS,他们也有消息服务。
您还可以使用websockets在完成进程时通知客户端,以使UI状态保持在循环中。