.Net framework para gerenciar processos em execução em segundo plano em máquinas separadas

Estou tendo um aplicativo asp.mvc que reside em um servidor.A partir desse aplicativo, desejo iniciar um processo que seja uma operação um pouco demorada e que consome muitos recursos.

Então, o que eu quero fazer é ter um agente de usuário como o 3, que estará presente em três máquinas e esse agente usará apenas os recursos de suas respectivas máquinas.

Como no Hadoop, temos nós mestres e cluster nos quais as tarefas são executadas no cluster individual e há 1 nó mestre acompanhando todos esses clusters.

No Azure, temos máquinas virtuais nas quais as tarefas são executadas e, se necessário, o Azure pode ser dimensionado automaticamente na horizontal, girando a nova instância para acelerar a tarefa.

Então, eu quero criar uma infraestrutura como essa, onde eu possa enviar minha tarefa para 3 agentes de usuário do aplicativo mvc e meu aplicativo acompanhará esses agentes, como qual agente é gratuito, que é ocupado, que não está funcionando dessa maneira.

Gostaria de receber o progresso de cada um desses agentes de usuário e mostrar no meu aplicativo MVC.

Existe alguma estrutura no .net a partir da qual eu possa gerenciar essas operações em execução em segundo plano (rastreamento, iniciar, parar etc.) ou qual deve ser a abordagem para isso?

Atualização: Eu não quero colocar um monte de servidor para essas operações de longa duração e, além disso, quero acompanhar esse processo de longa duração também como o que eles estão fazendo, onde estão os erros, etc.

A seguir, a abordagem que estou pensando e não sei o que fará mais sentido:

1) Instale o Windows Service na forma de agentes do computador 2-3 no local para aproveitar os recursos respectivos e abrir uma conexão tcp / ip com esses agentes, a menos e até que o longo processo de execução seja concluído.

2) Use o hangfire para executar esse longo processo fora do segmento do IIS, mas acho que isso sobrecarregará o servidor.

Gostaria de conhecer possíveis problemas das abordagens acima e se existem abordagens melhores que essa.

questionAnswers(4)

yourAnswerToTheQuestion