Pergunta

Então, a minha empresa armazena um monte de dados em um banco de dados foxpro e tentando contornar o impacto no desempenho de tocá-lo diretamente, eu estava pensando de mensagens de qualquer coisa que pode ser feita de forma assíncrona para um veloz experiência do usuário.Eu comecei a olhar ActiveMQ mas não sei bem como C# ligar com ele.Querendo ouvir o que vocês pensam.

editar :Vai ser uma aplicação web.Nada de tocar neste foxpro é meio lento (provavelmente porque a pessoa que a configurou 10 anos atrás confuso tudo para o inferno, alguns dos ficheiros de tabela são incrivelmente grande).Nós replicar o foxpro para o sql noturno e a maioria de nossas leituras de dados está ok ser um dia de idade, então estamos focando o escreve.além de a escrita afeta uma parte crítica da experiência do usuário (compras), podemos armazená-lo em sql e, em seguida, apenas a mensagem para colocá-lo em foxpro quando pode.Eu desejo que nós poderíamos apenas livrar-se do foxpro, infelizmente a empresa não quer se livrar de um velho pedaço de software que comprou que depende dele.

Foi útil?

Solução

ActiveMQ funciona bem com C# utilizando o Spring.NET integrações e NMS.Um post com alguns links para você começar nessa direção é aqui.Considere também o uso de MSMQ (O Sistema.Espaço de nomes mensagens) ou um .Com base LÍQUIDA de mensagens assíncrono solução, com algumas opções aqui.

Outras dicas

MSMQ (Microsoft Message Queueing) pode ser uma ótima opção.Ele é parte do sistema operacional e do presente como um componente opcional (pode ser instalado via Adicionar/Remover Programas / Componentes do Windows), o que significa que é livre (desde que você já pagou Windows, claro).MSMQ fornece Win32/COM e Do sistema.Mensagens APIs.Mais modernas do Windows Communication Foundation (aka Indigo) na fila canais também uso o MSMQ.Note que o MSMQ não é suportado em Casa SKUs do Windows (XP e Vista Home)

Vale a pena mencionar que o ActiveMQ projeto open source define um C# API para o sistema de mensagens chamado NMS o que permite que você para desenvolver um único C# / .A API de rede que pode, em seguida, usar várias mensagens de volta termina como

Você pode querer olhar para MSMQ.Ele pode ser usado por .NET e VFP, mas você vai precisar reescrever para usá-los.Aqui está um artigo que explica como utilizar o MSMQ do VFP. http://msdn.microsoft.com/en-us/library/ms917361.aspx

Desculpe se este não é o que você está pedindo...Você já pensou em algum tipo de cache de bastidores que funciona um pouco como o "balde de sistema" quando assíncrona usando sockets em c/c++ usando winsock?Basicamente, ele funciona por aceitar pedidos, e envia uma resposta imediata para o web app, e quando ele finalmente chega para encontrar o seu registro, ele atualiza-lo na app via AJAX ou qualquer outra tecnologia de sua escolha.Desde que eu não sou um programador C# eu posso não fornece nenhum exemplo específico.Espero que isso ajude!

A Fox aplicativo usar .Índices CDX?Se sim, você pode ser capaz de melhorar o desempenho adicionando índices sem a necessidade de alterar qualquer código de programa.Se ele usa .IDX índices, porém, a alteração teria que ser feito no próprio aplicativo.

Como o problema é com a escreve, gostaria de olhar mais para >remover< qualquer desnecessárias índices das tabelas.Como é comum em RDBMS, cada índice em uma tabela de FoxPro atrasa uma operação de escrita, como os índices precisam ser atualizados, e como você não está lendo diretamente a partir de (ou presumivelmente diretamente consultando a tabela você não precisa de muitos índices.Você também pode querer olhar em qualquer disparadores ou campo de regras sobre as tabelas como eles podem estar a abrandar a operação de gravação.Certifique-se a integridade referencial é ainda preservada, apesar de..

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