Pergunta

Eu tenho um problema aqui. Suponha que você tenha uma tarefa periódica negócio, para o equilíbrio de geração instância de cada mês. Essa tarefa pode ser executado em uma fazenda, por isso, se o computador que está executando a tarefa periódica falha que deve ser passado para outro computador.

Então, como eu poderia persistir uma tarefa periódica e tornando-o seguro em uma fazenda? Tenho thinked em uma fila persistente e compartilhada, mas estou muito preso.

Todas as idéias?

Agradecemos antecipadamente.

Foi útil?

Solução

Há uma série de fatores que faltam na sua pergunta. Como você está acessando a tarefa? É um serviço web? A chamada de procedimento remoto? Faz correr por conta própria e, em seguida, armazenar os resultados em uma pasta de compartilhamento?

Se é apenas serviços web, em seguida, solução poderia ser apenas para consultá-los em ordem, se a pessoa não estiver disponível, em seguida, avançar para a próxima ... provavelmente rpc só poderia ser tratado com o mesmo procedimento. Claro que isso não escala tão bem e é um pouco ad hoc, mas ele só poderia fazer o truque se você não tem tempo para mais nada.

Se você tem o tempo e dinheiro necessários para realmente escalar você deve dar uma olhada para controle reconfiguração , que é a base para o tipo de tolerância a falhas você está procurando. Claro que implicará um controlador (máquinas de supervisão como chamadas @jldupont eles), bem como um monte de mecanismo e esforço para manter tudo junto.

pena de só se você realmente precisa dele. É um grande investimento em tempo e dinheiro por isso não corajosamente fazê-lo apenas porque é legal.

Outras dicas

Indo de 1 a> 1 é sempre um grande passo.

Opção 1

Você vai precisar de (entre outras coisas):

  • máquinas Supervisor
  • protocolo de coração-beat / falha de detecção
  • protocolo de eleição para agendador de tarefas
  • Job Scheduler
  • relatórios Job

etc.

Opção 2

Basta ter várias máquinas fazer a tarefa e selecione a saída bem-sucedida de um deles (ou o uso da votação por maioria, se você sentir que você precisa).

Não é certo que a sua pilha de tecnologia é, mas dê uma olhada Quartz (ou Quartz.net se você usar o .NET pilha). O quartzo é um agendador de tarefas empresa com robusta fail-over / recursos de alta disponibilidade.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top