Si tuviera que ejecutar algún código, tal vez enviar un correo electrónico, cada 30 días a los usuarios de mi sitio, ¿cómo se haría?C# código de ejecución cada 30 días
Respuesta
Qué marco está trabajando? Tengo algunos consejos si estás desarrollando con .Net 4.0 como yo.
Si tiene acceso a su máquina donde puede instalar servicios, utilizaría el nuevo y mejorado Servicio de flujo de trabajo para esta situación. Lo bueno de ellos es que los flujos de trabajo pueden persistir durante minutos, horas, días, semanas, meses, etc., y permanecen inactivos hasta que finalizan los períodos de retraso.
Si se trata de una máquina IIS (y si esa es la ruta que le gustaría tomar) es relativamente simple de construir directamente como un proyecto/solución de "Workflow Service" en VS 2010. Desde allí se le presenta un diseñador y varias actividades de flujo de trabajo en la barra de herramientas.
Agregue una actividad de diagrama de flujo para colocar sus actividades de correo electrónico dentro de. El diagrama de flujo es ideal porque puede inicializar todo lo que necesite y el flujo de decisión puede redirigirse hacia atrás en dirección (en oposición a la actividad de secuencia de movimiento siempre hacia adelante). Lo que tiene que hacer con su lógica depende de usted, ya que su pregunta no proporciona muchos detalles.
Ahora, si está usando .Net 3.5, entonces pensaría en abstenerme de crear Workflows ya que tiene que migrar cuando cambie a 4.0 (WF 3.5 NO es compatible con 4.0). Con el acceso de administrador a la máquina, puede instalar un Servicio de Windows que contiene un temporizador para disparar el código cada 30 días (o como se lo defina) según sea necesario.
Utilice Windows Task Scheduler para ejecutar su aplicación.
Opciones:
1) Consola de aplicaciones que se ejecuta en el Programador de tareas de Windows
2) Servicio de Windows http://www.c-sharpcorner.com/UploadFile/mahesh/window_service11262005045007AM/window_service.aspx
Si es SQL Server específico, puede usar SQL Jobs.
Si quiere hacerlo con su aplicación ASP.NET lugar de una aplicación separada, usted tiene algunas opciones:
ya que desea que se ejecute cada 30 días en lugar de todos los días, recomiendo este método de usar una tabla de programación en lugar de variables de aplicación o caché para programar trabajos:
Puede configurar una tabla de programación en su base de datos y comprobar cuándo fue actualizada por última vez en su global.asax. En el inicio de la sesión, verifique si la fecha actual es más de 30 días. Si es así, llama a un método para enviar correos electrónicos.
Si envía correos electrónicos, actualice su tabla de programación con la fecha actual.
- 1. C# 30 días a partir de la fecha de hoy
- 2. C# loops a través de 24 horas cada 30 minutos
- 3. cambio de imagen cada 30 segundos -
- 4. mysql seleccione las fechas en el rango de 30 días
- 5. Registrar cada ejecución de método
- 6. eliminando el límite de 30 días de memcached
- 7. Tiene problemas con repeatinterval cada 30 minutos
- 8. Cuatro preguntas sobre nettuts "30 días para aprender jquery"
- 9. ¿Cómo llegar 30 días antes de la fecha actual?
- 10. encontrar si la fecha es más de 30 días
- 11. Longitud de Sprint - 2 semanas vs 30 días
- 12. Javascript - Establecer la fecha 30 días a partir de ahora
- 13. Crear una matriz de los últimos 30 días con PHP
- 14. jQuery Solicitud Ajax cada 30 segundos
- 15. MySQL Query - Registros entre hoy y los últimos 30 días
- 16. Insertar valor predeterminado como fecha actual + 30 días en MySQL
- 17. 30 días hasta la fecha (dd/mm/aa)
- 18. MySQL: Agregar 30 días a un valor en la tabla
- 19. ¿Cómo puedo hacer que mi aplicación tenga un período de prueba de 30 días
- 20. Expresión cron de primavera para cada 30 minutos
- 21. C# Tamaño del código y tiempo de ejecución del código
- 22. ¿Se convierte cada programa de Objective C a código C?
- 23. Macro C++ para registrar cada línea de código
- 24. Ejecución de cron job en Linux cada 6 horas
- 25. agregue más de 30 días con el método add() de Calendar en Java
- 26. DateTime.Compare cómo comprobar si una fecha tiene menos de 30 días de antigüedad.
- 27. Buscar artículos de trabajo que fueron asignados a X en los últimos 30 días
- 28. Oracle SQL Donde la cláusula para buscar registros de fecha anteriores a 30 días
- 29. sql declaración de eliminación donde la fecha es mayor que 30 días
- 30. Mida el tiempo de ejecución en C++ código OpenMP
Creo que voy a ir en esta dirección. Gracias ... – Soeren
@Soeren, la clave aquí es que no se puede desencadenar de manera confiable el evento del proceso de trabajo asp.net/IIS. Necesitas el servicio de Windows. – StingyJack