Pregunta

¿Cuáles son los diferentes enfoques para crear tareas programadas para aplicaciones web, con o sin una aplicación web/de escritorio separada?

¿Fue útil?

Solución

Si hablamos de la plataforma Microsoft, siempre desarrollaría un servicio de Windows independiente para manejar este tipo de tareas por lotes.

Siempre puede hacer referencia a los mismos ensamblados que utiliza su aplicación web para evitar cualquier duplicación de código desagradable.

Otros consejos

Jeff discutió esto en el blog Stack Overflow:http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/

Básicamente, Jeff propuso usar CacheItemRemovedCallback como temporizador para llamar a ciertas tareas.

Personalmente creo que las tareas automatizadas deben manejarse como un servicio, una tarea programada de Windows o un trabajo en SQL Server.

En Linux, consulte cron.

Creo que Stack Overflow está utilizando una caducidad de ApplicationCache para ejecutar código en segundo plano a intervalos.

Si está en un host Linux, es casi seguro que utilizará cron.

En Linux puedes usar trabajos cron (http://www.unixgeeks.org/security/newbie/unix/cron-1.html) para programar tareas.

Utilice buscadores de URL como wget o curl para realizar solicitudes HTTP GET.

Asegure sus URL con autenticación para que nadie pueda ejecutar las tareas sin conocer el usuario/contraseña.

Creo que el Programador de tareas integrado de Windows es la herramienta sugerida para este trabajo.Eso requiere una aplicación externa.

Esto puede ser lo que estás buscando o no, pero lee este artículo ".Simule un servicio de Windows usando ASP.NET para ejecutar trabajos programados".Creo que StackOverflow puede usar este método o al menos se habló de usarlo.

Un método muy simple que hemos usado donde trabajo es este:

  1. Configure un servicio web/método web que ejecute la tarea.Este servicio web se puede proteger con un nombre de usuario/contraseña si lo desea.
  2. Cree una aplicación de consola que llame a este servicio web.Si lo desea, puede hacer que la aplicación de consola envíe parámetros y/o recupere algún tipo de métricas para enviarlas a la consola o al registro externo.
  3. Programe este ejecutable en el programador de tareas de su elección.

No es bonito, pero es simple y confiable.Dado que la aplicación de consola es esencialmente solo un latido para indicarle a la aplicación que haga su trabajo, no necesita compartir ninguna biblioteca con la aplicación.Otra ventaja de esta metodología es que es bastante trivial iniciarla manualmente cuando sea necesario.

Utilice buscadores de URL como wget o curl para realizar solicitudes HTTP GET.

Asegure sus URL con autenticación para que nadie pueda ejecutar las tareas sin conocer el usuario/contraseña.

También puedes decirle a cron que ejecute scripts php directamente, por ejemplo.Y puede configurar los permisos en el archivo PHP para evitar que otras personas accedan a ellos o, mejor aún, no tenga estos scripts de utilidad en un directorio accesible desde la web...

Java y Spring: utilice cuarzo.Muy agradable y confiable. http://static.springframework.org/spring/docs/1.2.x/reference/scheduling.html

Creo que hay formas más sencillas que usar cron (Linux) o el Programador de tareas (Windows).Puede integrar esto en su aplicación web usando:(a) programador de cuarzo,

o si no desea integrar otra biblioteca de terceros en su aplicación:(b) cree un hilo al inicio que utilice la clase estándar Java 'java.util.Timer' para ejecutar sus tareas.

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