微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

传奇/消费者完成后是否可以停止大众运输服务

如何解决传奇/消费者完成后是否可以停止大众运输服务

所以我知道这与 Masstransit 风格有点背道而驰,但我想利用 MT 的一些关键功能,例如消息代理连接管理、saga、预定消息。

但是,我知道该服务将很少使用。这是从 API 中获取的相当大的数据,其限制为每小时 12,000 个请求。每 24 小时一次,saga 将开始获取数据并将其移动到数据湖中。该服务将运行几分钟直到油门被击中,然后在足够的时间过去后从它停止的地方重新开始(状态),也许大约 30 分钟后。数据量意味着这将重复几个小时(2 到 4 小时)。

适合一个传奇和预定的消息似乎很不错。但是,如果该服务不会因 24x7 保持清醒而产生运营成本会更好。对于一组 API 凭证,一次只会有一个请求。有时我们可能会有多组凭据。

有没有办法在传奇完成时很好地关闭服务?

因为这可能是用容器实例来实现的,所以我建议从队列触发函数或类似函数中启动一个实例。

解决方法

假设这是您想要采用的方法(而不是仅由 Azure 调度程序触发的 Azure Web 作业),则有多种选择:

  1. 在 saga 完成时发布一个事件,使用该事件,使用 Task.Run() 或其他任何方法来停止总线。
  2. 使用接收观察器来跟踪飞行中的消息,当它达到零并停留 n 秒时,停止公共汽车,退出函数。

虽然我想知道为什么不直接通过 Azure 使用预定的作业,但似乎更容易,除非 MassTransit 不仅仅用于调度。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。