Pregunta

Entonces, mi empresa almacena una gran cantidad de datos en una base de datos de FoxPro y, al tratar de evitar el impacto en el rendimiento al tocarlos directamente, estaba pensando en enviar mensajes a cualquier cosa que se pueda hacer de forma asincrónica para una experiencia de usuario más ágil.comencé a mirar ActivoMQ pero no sé qué tan bien funcionará C# con él.Queriendo escuchar lo que piensan todos ustedes.

editar :Será una aplicación web.Todo lo que toque este foxpro es un poco lento (probablemente porque la persona que lo configuró hace 10 años lo arruinó todo, algunos de los archivos de la tabla son increíblemente grandes).Replicamos foxpro a sql todas las noches y la mayoría de nuestras lecturas de datos están bien desde hace un día, por lo que nos centramos en las escrituras.Además, la escritura afecta una parte crítica de la experiencia del usuario (compra), la almacenamos en SQL y luego simplemente enviamos un mensaje para que se coloque en FoxPro cuando sea posible.Ojalá pudiéramos deshacernos de FoxPro, desafortunadamente la compañía no quiere deshacerse de un software muy antiguo que compraron y que depende de él.

¿Fue útil?

Solución

ActiveMQ funciona bien con C# utilizando las integraciones Spring.NET y NMS.Una publicación con algunos enlaces para comenzar en esa dirección. es aquí.Considere también el uso de MSMQ (el espacio de nombres System.Messaging) o una solución de mensajería asincrónica basada en .NET, con algunas opciones aquí.

Otros consejos

MSMQ (Microsoft Message Queueing) puede ser una excelente opción.Es parte del sistema operativo y está presente como un componente opcional (se puede instalar mediante Agregar o quitar programas/componentes de Windows), lo que significa que es gratuito (siempre que ya haya pagado por Windows, por supuesto).MSMQ proporciona Win32/COM y Sistema.mensajería API.Windows Communication Foundation más moderna (también conocida como Indigo) canales en cola También utilice MSMQ.Tenga en cuenta que MSMQ no es compatible con las SKU domésticas de Windows (XP Home y Vista Home).

Vale la pena mencionar que el Proyecto de código abierto ActiveMQ define un API C# para mensajería llamada NMS lo que le permite desarrollar contra una única API C#/.Net que luego puede usar varios backends de mensajería, como

  • ActivoMQ
  • MSMQ
  • EMS de TibCo
  • cualquier proveedor STOMP
  • cualquier proveedor JMS a través de StompConnect

Es posible que desee consultar MSMQ.Puede ser utilizado por .NET y VFP, pero necesitarás reescribirlo para usarlos.Aquí hay un artículo que le indica cómo usar MSMQ desde VFP. http://msdn.microsoft.com/en-us/library/ms917361.aspx

Lo siento si esto no es lo que estás pidiendo...¿Ha considerado algún tipo de caché detrás de escena que actúe un poco como el "sistema de depósito" cuando se usan sockets asíncronos en c/c++ usando winsock?Básicamente, funciona aceptando solicitudes y envía una respuesta inmediata a la aplicación web, y cuando finalmente logra encontrar su registro, lo actualiza en la aplicación a través de AJAX o cualquier otra tecnología de su elección.Como no soy programador de C#, no puedo dar ningún ejemplo específico.¡Espero que esto ayude!

¿La aplicación Fox utiliza índices .CDX?Si es así, es posible que pueda mejorar el rendimiento agregando índices sin necesidad de cambiar ningún código de programa.Sin embargo, si utiliza índices .IDX, el cambio debería realizarse en la aplicación real.

Como el problema es con las escrituras, buscaría más >eliminar< cualquier índice innecesario en las tablas.Como es común en RDBMS, cada índice en una tabla FoxPro ralentiza una operación de escritura ya que los índices deben actualizarse y, como no está leyendo directamente (o presumiblemente consultando directamente) la tabla, no debería necesitar muchos índices. .También es posible que desees observar los activadores o reglas de campo en las tablas, ya que pueden estar ralentizando la operación de escritura.Sin embargo, asegúrese de que su integridad referencial aún se preserve.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top