Pergunta

Eu tenho uma aplicação ASP.Net que precisa de necessidades para ter algum trabalho realizado por outra máquina. Para fazer isso eu estou deixando uma mensagem na fila visível para ambas as máquinas. Quando o trabalho é feito uma mensagem é deixada na segunda fila.

Eu preciso da aplicação ASP.Net para verificar a segunda fila periodicamente para ver se qualquer uma das tarefas estão completas.

Onde é o melhor lugar para, mas tal ciclo um? Global.asax?

Lembro de ter lido em algum lugar que você pode obter uma função chamada após um intervalo. Isso seria adequado?

Foi útil?

Solução

Para realizar tarefas periódicas em asp.net, eu encontrei duas abordagens aceitáveis:

  1. gerar um segmento durante Application_Start no global.asax, em um loop while (1) Fazer o trabalho (2) Sono do segmento para um intervalo.
  2. Novamente em Application_Start, inserir um item de manequim no cache asp.net, expira em um determinado intervalo e dar esse item de cache um callback para ser chamada quando é expirado. Nesse retorno, você pode fazer o trabalho e inserir o item de cache volta da mesma forma.

Em ambos os modos, você precisa se certificar de que a sua discussão continua trabalhando, mesmo se acontecer um erro. Você pode colocar um código de restauração no SessionStart e BeginRequest para verificar o seu segmento ou item de cache está lá, e renová-lo se algo aconteceu com ele.

Outras dicas

Eu suponho que isso seja feito em uma base regular, e que alguns outros puts processar os itens na fila?

Se for esse o caso, você pode colocar algo em Global.asax que na aplicação início cria um segmento separado que simplesmente monitora a fila, você pode usar um timer para ter esse sono tópico por X segundos, em seguida, verificar se há resultados.

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