如何在Azure Service Fabric上启动长期运行服务的多个实例



我是Azure服务结构的新手。

我的情况是,我有一项长期运行的服务,需要动态启动/停止多个实例,并且该启动应该是非块。每个实例将独立处理1个数据输入。例如:

说我有一项气象服务,可以不断为每个城市吸收天气数据,并且长期运行。我有一个可以改变的城市清单。所以,我想做以下操作:

var weatherSvcList = new List...
var currentCities = [];
while (true) 
{
    var newCities = FetchCities();
    var addedCities = newCities.Except(currentCities);
    weatherSvcList  = LaunchSvc(addedCities); // launch and return, non-blocking
    var removedCities = currentCities.Except(newCities);
    weatherSvcList  = StopSvc(removedCities);
    weatherSvcList  = RelaunchErrorSvc(cities);
    currentCities = newCities;
}

我已经研究了演员模型,但似乎演员不适合长期运行的任务,而且很难开始/阻止他们。知道我应该使用哪种服务/编程模型?

请在此处考虑使用任务队列。

被调用时,气象服务将使启动天气数据的任务。它还将运行一个无限循环(RunAsync),此循环删除并执行任务。

这样,服务调用将在后台执行时迅速返回。

在此处出于启发性目的的一些代码。

相关内容

  • 没有找到相关文章

最新更新