asp.net mvc 4 - net - cómo programar una tarea en MVC4 C#?
tutorial asp.net mvc 5 español (7)
Ante todo;
- Añadir paquete Nuget
Install-Package FluentScheduler
- Agregue su clase de registro que herede el Registro y algún código
// Schedule a simple task to run at a specific time
Schedule(() => System.Diagnostics.Debug.Write("This is from service " + DateTime.Now.Second+"/n"))
.ToRunNow().AndEvery(2).Seconds();
- Registre esa clase de registro en Application_Start of
Global.asax.cs
con TaskManager
TaskManager.Initialize(new Test());
Quiero crear un sistema de notificación en mi sitio web (algo así como desbordamiento de pila)
¿Cómo podemos programar una tarea para enviar por correo la notificación a los usuarios cada 24 horas?
¿Podemos usar MVC4 o debemos usar el servicio de Windows?
Editar:
Mi experiencia con el uso de FluentScheduler
en 3 meses dentro de una aplicación MVC4.
FluentScheduler
es fácil de configurar y usar, pero no ejecuta tareas en ningún momento. A veces se ejecuta y a veces no se ejecuta.
Creo que la mejor manera de programar es Windows Service
para garantizar la ejecución de una tarea en el momento específico.
Encontré que es un programador increíble, FluentScheduler
Uso:
// Schedule an ITask to run at an interval
Schedule<MyTask>().ToRunNow().AndEvery(2).Seconds();
Necesita un .Net Job Scheduler. Aquí hay una buena: http://quartznet.sourceforge.net/
Puede usar el servicio de programación ATrigger . Una biblioteca .Net también está disponible para crear tareas programadas sin gastos generales. Registro de errores, análisis, listas de tareas y más beneficios.
Descargo de responsabilidad: estuve entre el equipo de ATrigger. Es un software gratuito y no tengo ningún propósito comercial.
También hay una opción incorporada, QueueBackgroundWorkItem. Se agregó en .Net 4.5.2 y aquí hay una guía sobre cómo usarlo en MVC .
Además de FluentScheduler anteriormente mencionado, también tienes HangFire . Y si planea implementar en Azure, hay un puñado de servicios diferentes para esto .
Uso la tarea programada de Windows.
Tengo una pequeña aplicación que ingresar un registro en el bd, luego accedo al sitio web con este recordId (Guid) como parámetro.
En mvc, verifico si el ID existe, si existe, ejecuto tareas y luego borro el registro en el archivo db, si no lo ignoro.
de esta manera soy capaz de agregar un horario con un param. sin actualizar la aplicación cada vez que necesito una nueva tarea programada. Acabo de agregar una nueva tarea como "myapp.exe / MyNewTaskName"
Espero que esto ayude a alguien ;-)
tal vez quieras usar una tarea programada. Hacer esto en un MVC es una mala idea (mezclar responsabilidades) y construir un servicio de Windows me parece demasiado (porque algo no necesita ejecutarse todo el tiempo).