Pergunta

Eu tenho um aplicativo que varre um diretório de entrada a cada cinco segundos e quando um trabalho (ou seja, arquivo) é colocado no diretório do aplicativo lê-lo, processa e gera outro arquivo (s) em um diretório de saída.

A minha pergunta é, Se eu quisesse colocar um baseado na web front-end sobre este pedido, como eu ia esperar que o processamento para ser completa?

  • submete usuário tarefa
  • trabalho é colocado no diretório de entrada
  • ...... O que estou fazendo na página web aqui?
  • processamento ocorre
  • arquivo de saída é gerado
  • ...... Como eu sei que o trabalho está terminado?

As duas soluções que eu vim acima com foram:

  • diretório de saída sondagem a cada x segundos a partir da página web
  • usar AJAX para consultar um webservice ou página Web que reporta se o arquivo de saída está presente

Existe um projeto melhor para o servidor? Em outras palavras, como é que TCP ou Named Pipes ajuda nesta situação? (Não é possível usar a comunicação remota devido a um objeto DCOM.)

Foi útil?

Solução

Uma solução que temos feito comercialmente no passado é basicamente as gravações daemon para um log (normalmente DB), com um carimbo de data / hora, sobre o que seu fazer, ea interface web só mostra a mais recente X quantidade de entradas o log, com um pouco de alternância para ocultar todas as mensagens "olhado no diretório, nenhum arquivo encontrado", trabalhou bastante bem, nós atualizado-lo mais tarde com AJAX (timer que recarregado a cada 20 segundos).

Outras dicas

Eu não acho que os pipes nomeados estão indo para torná-lo mais fácil de obter o cliente web para pesquisar automaticamente, mas pode fazer o servidor mais capazes de notificar um outro processo que a conversão for concluída - e, finalmente fila de um mensagem para o navegador web.

Você pode tentar ter a votação cliente web cada poucos segundos para ver se o processo de arquivo foi concluída, alternativamente, você poderia ter algo como Juggernaut "push" comandos para a página. Juggernaut funciona usando o Flash para abrir um socket no navegador da web que alimenta continuamente JavaScript do servidor. Poderia ser responsável por enviar um comando para alertar o navegador que o arquivo foi concluída e, em seguida, emitir um redirecionamento.

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