Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure 是否可以在saga/消费者完成后停止MassTransit服务_Azure_Masstransit - Fatal编程技术网

Azure 是否可以在saga/消费者完成后停止MassTransit服务

Azure 是否可以在saga/消费者完成后停止MassTransit服务,azure,masstransit,Azure,Masstransit,所以我知道这与MassTransit风格有点背道而驰,但我想利用MT的一些关键功能,如MessageBroker连接管理、sagas、定时消息 但是,我知道这项服务很少使用。这是一个相当大的数据量,取自一个API,该API每小时有12000个请求。每24小时一次,一个传奇将开始收集数据并将其转移到数据湖。该服务将运行几分钟,直到油门被踩下,然后在足够的时间后(可能大约30分钟后)在其关闭(状态)的位置重新启动。数据量意味着这将重复几个小时(2到4) 适合一个传奇故事和预定的消息似乎很好。但如果这

所以我知道这与MassTransit风格有点背道而驰,但我想利用MT的一些关键功能,如MessageBroker连接管理、sagas、定时消息

但是,我知道这项服务很少使用。这是一个相当大的数据量,取自一个API,该API每小时有12000个请求。每24小时一次,一个传奇将开始收集数据并将其转移到数据湖。该服务将运行几分钟,直到油门被踩下,然后在足够的时间后(可能大约30分钟后)在其关闭(状态)的位置重新启动。数据量意味着这将重复几个小时(2到4)

适合一个传奇故事和预定的消息似乎很好。但如果这项服务不因全天候保持清醒而产生运营成本,那就更好了。对于一组API凭据,一次只能有一个请求。有一天我们可能会有多套凭证

有没有办法在传奇故事结束后很好地关闭服务


由于这很可能是通过容器实例实现的,我建议从队列触发函数或类似函数启动实例。

假设这是您想要采取的方法(而不仅仅是Azure调度器触发的Azure Web作业),有许多选项:

  • 在传奇故事完成后发布事件,使用该事件,使用Task.Run()或其他方法停止总线
  • 使用接收观察员跟踪飞行中的信息,当信息到达零并停留n秒时,停止总线,退出功能

  • 虽然我想知道为什么不通过Azure使用计划作业,但似乎更容易,除非MassTransit不仅仅用于计划。

    谢谢Chris。是的,如果这只是一份预定的工作,我想你是对的。但是,由计划触发的进程将运行很长时间,并有几次较长的暂停,状态将随暂停/重新启动而改变。重新启动受基于时间的规则控制,该规则将改变重新启动的时间。一个计划好的消息触发了一个传奇故事中的下一个事件,这似乎是一个很好的匹配。当然,我们还有另一个选择,就是根本不停止服务,让它在等待下一条启动消息时运行。