【发布时间】:2017-04-17 14:34:16
【问题描述】:
目前我正在使用 asp.net 开发一个 WebApi 项目。我想将所有非时间关键且长时间运行的操作转移到 webjobs 中,以保持我的 API 快速和简单。
例如在创建特定资源时,会立即创建(实体状态:created/provisioning),并将新的队列消息入队。现在 webjob 接收到队列上的消息并开始配置任务。作业成功/失败后,资源/实体将被更新(状态:完成/失败)。
没什么特别的。但现在我也想将诸如物化统计、报告等部分移动到现在动态计算和计算的作业中。
当我将所有这些时间不重要的任务移动到单独队列中的 webjobs 中时,例如:
供应队列 更新统计A 创建报告B ...
一次有这么多队列 (20-50) 是一种不好的做法吗(它们都将一直被轮询/检查)。为清楚起见:每条消息一个队列。可悲的是,我没有找到任何方法/示例如何创建多个作业功能,这些作业功能侦听同一队列但具有不同的消息。此外,我没有发现使用许多队列有什么好处/坏处。仅具有 1-3 个作业功能的示例(图像转换、调整大小......)。
天蓝色的服务总线听起来也不错(因为主题)。我不确定我在使用 webjobs 和存储队列时是正确的还是好的方法。我想要的只是将许多非时间关键且长时间运行的任务与 webapi 分离。
谢谢大家!
【问题讨论】:
标签: .net azure asp.net-web-api queue azure-webjobs