2008-09-03 10 views

Respuesta

7

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.

4

Servicio de Windows

1

si se trata principalmente de tareas de procesamiento de datos y está utilizando MSSQL, ¿qué hay de las tareas programadas de SSIS?

0

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.

3

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.

0

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.

0

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.

Cuestiones relacionadas