none
Tarea programada en ASP:NET con MVC RRS feed

  • Pregunta

  • Hola.

    Quisiera preguntaros de qué forma podría realizar lo siguiente.

    Teniendo una app web con MVC, quisiera que todos los días a una hora se ejecutara una parte de mi app web, como por ejemplo enviar un mail con ciertos datos.

    Por ejemplo, usando PHP es suficiente con crear un fichero por lotes, usar el administrador de tareas o si estás en GNU/Linux usar CRON, y después ejecutar un comando tipo "php 'nombredelfichero.php' ".

    ¿De qué forma podría hacer esto en ASP.NET?.

    Muchas gracias.

    Saludos.

    domingo, 10 de septiembre de 2017 15:03

Respuestas

  • Puedes usar Quartz.Net para crear tareas programadas. También otra opción sería usando una Azure Function que se lance cada cierto tiempo ejemplo

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Propuesto como respuesta Willams Morales domingo, 10 de septiembre de 2017 17:40
    • Marcado como respuesta Julián Melero domingo, 10 de septiembre de 2017 20:19
    domingo, 10 de septiembre de 2017 17:31
    Moderador

Todas las respuestas

  • Puedes usar Quartz.Net para crear tareas programadas. También otra opción sería usando una Azure Function que se lance cada cierto tiempo ejemplo

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Propuesto como respuesta Willams Morales domingo, 10 de septiembre de 2017 17:40
    • Marcado como respuesta Julián Melero domingo, 10 de septiembre de 2017 20:19
    domingo, 10 de septiembre de 2017 17:31
    Moderador
  • Gracias por tu respuesta Sergio.

    Tengo acceso completo al servidor, por lo que había pensado en usar el administrador de tareas para ello. No sé muy bien como funciona Quartz. Había pensado en crear una aplicación de consola que se ejecute como .exe como tarea. Pero no sé si se podrá ejecutar una web sin navegador desde esta forma.

    Lo más conveniente es usar la aplicación web y la lógica MVC para las tareas de mantenimiento. 

    ¿Sólo me quedaría usar Quartz?.

    Gracias.

    Saludos.

    domingo, 10 de septiembre de 2017 17:47
  • Hola, claro que puedes hacer una app console para ello y luego habilitar una tarea programada. Se supone que este desarrollo sería para hacer tareas o procesos que no tienen que ver con la web propiamente dicha. Enviar mails cada cierto tiempo no requiere de web. También, puedes crearte un servicio Windows que haga esas tareas. 

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    domingo, 10 de septiembre de 2017 18:46
    Moderador
  • Hola.

    Te pongo un ejemplo. En mi app web se generan acciones comerciales, al final del día lo que quiero es enviar un mail con las acciones comerciales que se han realizado.

    Lo que me gustaría saber es, ¿Cómo puedo reutilizar el sistema MVC para realizar la tarea?. No sé, por ejemplo http://misitioweb/mantenimiento/enviar_acciones.

    ¿Lo hago así o es mejor usar app console?.

    Una pregunta, ¿Cómo hacéis vosotros para realizar labores de la aplicación web en segundo plano sin que el usuario sea el que ejecute la web?, es decir, aunque nadie entre en la web que se ejecuten procesos internos.

    Gracias.

    Saludos.

    domingo, 10 de septiembre de 2017 19:10
  • Hola. Si es una tarea en segundo plano tienes varias opciones. Si usas Sql Server puedes generar Jobs para que se ejecuten cuando quieras. Como también te dije, tienes la opción de Quartz o inclusive servicios Windows. Piensa que es mejor que sea el servidor el encargado de hacer esas tareas y no una persona que pulse un botón. El día que se le olvide pulsarlo no se enviarán mails. Otro ejemplo de tareas programadas en segundo plano es la realización de transferencias bancarias por parte del banco.... Espero explicarme. 

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    domingo, 10 de septiembre de 2017 19:23
    Moderador
  • Hola Sergio.

    Entonces entiendo que lo mejor es realizar una app Windows console (fichero ejecutable) con clases de conexión a la BD y la lógica que deseo realizar, y que sea el administrador de tareas sea quien lo ejecute, ¿cierto?.

    Es decir, como ejecutar un archivo PHP en cron.

    Saludos.

    domingo, 10 de septiembre de 2017 19:36
  • Si. Puedes hacerlo así si quieres.


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    domingo, 10 de septiembre de 2017 19:40
    Moderador