Jeff ha blogueado anteriormente sobre using the cache para realizar el procesamiento "fuera de banda" en sus sitios web, sin embargo, me preguntaba ¿qué otras técnicas usan las personas para procesar este tipo de tareas?Techiniques de procesamiento "fuera de banda" para aplicaciones asp.net
Respuesta
Hace años, vi a Rob Howard describir una forma de utilizar un HttpModule para procesar tareas en segundo plano. No parece tan ingenioso como usar el caché, pero podría ser mejor para ciertas circunstancias.
This blog post tiene los detalles, y hay muchos otros que capturan la misma información si miras alrededor.
Servicio de Windows
Tareas programadas o trabajos cron.
si se trata principalmente de tareas de procesamiento de datos y está utilizando MSSQL, ¿qué hay de las tareas programadas de SSIS?
El problema con las tareas programadas o las tareas cron es que no comparten el espacio de memoria con el servidor web. Podría configurar una tarea programada que solicitara páginas del servidor web, pero eso podría crear problemas con las tareas de ejecución prolongada. Sería bueno tener algunos subprocesos de baja prioridad que se ejecutan en la pila de aplicaciones ASP.Net real para realizar tareas sencillas de utilidad como limpiar cachés, supervisar recursos y simplemente ocuparse del mantenimiento general.
Es posible que desee ver cómo DotNetNuke lo hace. Sé que está escrito en VB.NET, pero modifiqué el código en C#. Estaba leyendo detenidamente la fuente y noté que tenían una función en su área de administración para configurar las tareas programadas. Estas tareas se configuran a través de la interfaz de administración y se almacenan en la base de datos. Cuando el sitio comienza, a través del archivo Global.asax, crean otro hilo para ejecutar este servicio que luego ejecuta las tareas programadas a la hora programada. No recuerdo la lógica exacta, ha pasado un tiempo, pero definitivamente es un buen recurso sobre cómo otras personas han realizado procesos fuera de banda para las aplicaciones Asp.Net. Esta técnica aún mantiene la lógica dentro de la aplicación Asp.Net, pero se agota en mi opinión.
Archivos de cola simples junto con un agente por separado. Para cada tipo de proceso fuera de banda, escriba un agente independiente .exe que mire un directorio para los archivos de la cola que incluya los datos necesarios para realizar el proceso especificado.
Esto puede parecer sucio, pero en el mundo real me parece que le da una gran flexibilidad, que no están haciendo una gran cantidad de procesamiento en el espacio de proceso ASP.net y se podría adaptar fácilmente este estilo para cultivar el procesamiento a barato Servidores Linux que ejecutan el proceso de agente en Mono para cuando necesita más memoria RAM/CPU/disco.
Si está más cómodo con las páginas asp.net puede escribir una aplicación pequeña para manejar su trabajo y luego "hacer ping" la aplicación con un servicio externo que supervisa su sitio web. Esto mantendrá la aplicación viva.
- tareas programadas utilizando http://www.codeproject.com/KB/cs/tsnewlib.aspx o schtasks.exe.
- Quartz.NET
- MSMQ
- SQL Server jobs
- Windows service
- System.Threading.Timer o System.Timers.Timer
- System.ComponentModel.BackgroundWorker
- Asynchronous llamadas y devoluciones de llamada
- 1. Sockets Java con datos fuera de banda
- 2. ¿Qué es POST fuera de banda?
- 3. ancho de banda y simulador de tráfico para aplicaciones web?
- 4. ¿Está bien utilizar HttpRuntime.Cache fuera de las aplicaciones ASP.NET?
- 5. Emparejamiento Bluetooth "fuera de banda" (OOB) en Android?
- 6. ¿Puedo renderizar html desde objetos de página ASP.NET fuera de las aplicaciones ASP.NET?
- 7. Asp.Net procesamiento de control simple para llamadas AJAX
- 8. Cómo escribir aplicaciones de procesamiento de audio en C++?
- 9. Desarrollo de aplicaciones móviles ASP.net
- 10. Distribución de aplicaciones web ASP.NET
- 11. MailDefinition fuera de la aplicación ASP.Net
- 12. manejo (fuera de control) en ASP.NET MVC
- 13. Vender aplicaciones de Windows Phone 7 fuera de App Hub
- 14. gestión de ancho de banda con rieles?
- 15. Tiempo de procesamiento de páginas en MVC
- 16. Buenas aplicaciones asp.net (C#)?
- 17. Distribución de aplicaciones de Android fuera del Android Market
- 18. Carga de archivos en aplicaciones fuera de línea HTML5
- 19. Monitoreo .NET Aplicaciones ASP.NET
- 20. Flujo de trabajo para desarrollar aplicaciones de procesamiento numérico en Amazon ec2/S3
- 21. ¿Existe un reemplazo adecuado para C++, cuando me gustaría escribir aplicaciones de procesamiento de video?
- 22. Prueba de aplicaciones webforms de ASP.NET
- 23. ¿Simular ancho de banda limitado desde Chrome?
- 24. ASP.NET Proveedor de membresía personalizado para aplicaciones muy grandes
- 25. ¿Debo configurar el grupo de aplicaciones ASP.NET para reciclar automáticamente?
- 26. Mejores prácticas para la localización de aplicaciones web ASP.NET
- 27. Cálculo del ancho de banda
- 28. Configuración de aplicaciones web asp.net. Mejores prácticas
- 29. Aplicaciones locales, fuera de las instalaciones, ¿qué son?
- 30. Pasar datos de sesión entre aplicaciones ASP.NET