Cómo ejecutamos tareas programadas que funcionen en entornos web? para ser más específicos, que funcione para ASP.NET? en aplicaciones de escritorio esto es un juego, el pan de cada día… dependiendo de la frecuencia con que la necesites ejecutar, puedes hacer un servicio windows o una tarea programada.
Un servicio windows puede ser la elección correcta si necesitas que se esté revisando o enviando alguna información en todo momento… pero una tarea programada es la elección correcta si sólo necesito que se revise o envíe alguna información a una hora determinada o cada cierta cantidad de tiempo.
Tanto el servicio windows como la tarea programada también funcionan para aplicaciones web, si es que contamos de un servidor propio… no es cierto? porque podemos instalar o configurar lo que nos de la gana.
Desarrollar un servicio windows es una tarea sencilla. No lo vamos a abordar en este post.
Crear una tarea programada también es sencillo, lo puedes hacer a mano o mediante código.
Para decirlo de otra manera: no hay chiste si posees un servidor propio… es muy fácil que soluciones el problema.
En este post vamos a asumir que tienes accesos limitados al servidor, osea contratas hosting de un proveedor y que no puedes correr servicios windows ni crear tareas programadas.
Profesor, profesor… pero, cómo lo hago entonces? tranquilo juanito… sigue leyendo.
Vamos a enumerar las distintas opciones de las que se dispone para solucionar este problema:
- Usar un AJAX timer para que se ejecute repetitivamente una página o sección de página, en esta sección se ejecutaría el código necesario para verificar algo.
- Aprovechando la expiración de caché, este artículo lo describe muy bien.
- Creando hilos (threads) desde una página aspx, el cual ejecuta un método para verificar algo… y luego se reprograma para ejecutarse nuevamente luego de un intervalo de tiempo.
- Usar un servicio windows o tarea programada desde otro servidor… el cual podría hacer una petición web via programación a una página aspx, dicha página contendría la lógica necesaria para verificar/ejecutar algo.
- Usar un servicio externo que lo haga por ti…………… ajá.
Si somos bastante realistas, todos los formas analizadas pueden dejar de funcionar por algún motivo, pero aquí hay algo interesante que quería compartirles y es referente al punto 5:
El punto 5 es una opción interesante y bastante eficaz, yo la uso desde hace tiempo en varias aplicaciones y hasta la actualidad no he tenido problemas.
Les voy a explicar en que consiste:
Existe un servicio en línea llamado weetasks.com, el cual te permite programar la ejecución de páginas (aspx, ashx, html, php, asp, jsp, etc…) de tu aplicación web… este servicio te soluciona el problema de pensar cómo hacer para que se ejecute cierta tareas, cada cierto intervalo de tiempo… pues ellos lo hacen por ti… lo único que tienes que hacer es crear una cuenta de usuario y luego configuras qué página quieres que se ejecute, le indicas cada cuantos minutos/horas/días debe ejecutarse la página y listo…
Por ejemplo, en una aplicación web lo uso para que todos los días a las 5am. ejecute el handler Alertas.ashx, y como se imaginarán… dentro de ese handler tengo una rutina que verifica un montón de cosas… y envía correos de alertas dependiendo de la lógica que le hayamos puesto.
Ingresen a weetasks.com y úsenlo como un programador de tareas web, es super fácil. Lo mejor de todo es que es gratuito.
Espero que les sea de utilidad ;)
2 comentarios:
simplemente -------- lo mejor que encontre... ME AGRADEZCO MUCHO
Hola Gale,
Aquí tienes otra opción para trabajar con web externas:
https://www.setcronjob.com/
Desde hace algunos años me cambié a esta web.
Saludos
Publicar un comentario