2010-07-14 29 views
6

Estoy en el alojamiento compartido y no me permiten usar el programador de Windows ... Entonces, ¿cuáles son las formas de lograr las tareas programadas, es decir (correo cronometrado) en asp.net ... Acabo de ver background process por Jeff Atwood blog ... ¿Es relaible? O cualquier otra forma de realizar tareas programadas ...Formas de programar tareas (sin escribir el programador de Windows) en asp.net

Luego encontré quartz.net pero no encuentro un ejemplo simple que incruste quartz.net en un asp.net (sin instalar un servidor Quartz.Net como un servidor independiente servicio de windows) ... Cualquier sugerencia sobre quartz.net ...

+3

http://stackoverflow.com/questions/3243400/how-to-do-background-processing-similar- to-that-on-stackoverflow ... hiciste la misma pregunta aquí ... – RameshVel

+0

¿cómo es que esto no es un duplicado de tu otra pregunta? –

+0

¿Qué solución finalmente has obtenido?Tengo el mismo requisito, pero el problema es que Quartz.net deje de funcionar cuando se reinicie el grupo de aplicaciones :( –

Respuesta

1

Estaba investigando Microsoft.Web.Administration assembly Schedule Class para lograr lo mismo, pero parece que la clase solo se puede usar para programar el reinicio del proceso de trabajo de IIS, aquí está el example of creating app pools and setting periodical restart.

Así que la única manera era programar con esto era reiniciar la aplicación ASP.NET y luego en Application_Start hacer el trabajo programado. Pero eso es feo, no solución, así que al final terminé agregando capacidades de programación a nuestro servicio local de Windows de respaldo que ya se estaba ejecutando en el servidor web, por lo que IMO Quartz.net es la mejor solución para usted. Tal vez podría convencer a su proveedor web para que instale Quartz.net, todas las demás soluciones parecen un truco que le dará más o menos problemas.

0
+0

-1 ¿Cómo se va a alojar en un proceso de ASP.NET? –

+0

Esto puede ayudarlo: http: // www. codeproject.com/KB/dotnet/ABTransClockArticle.aspx?msg=1990168#xx1990168xx o revise el enlace de actualización 2 –

+0

que no va a ayudar a Pandya. Un hoster que no le deja ejecutar el Programador de Windows difícilmente va a aprobar Servicios de Windows por separado. –

3

Usted COUL d simplemente escriba una página ASP.Net que realice su tarea, p. enviando los correos. A continuación, utilice un servicio de programación en línea como SetCronJob para llamar a la URL de la página en su servidor en un horario.

La desventaja de este enfoque tan simple es que depende de un servicio externo.

+0

¿puedo confiar? porque ... porque mi aplicación se basa en el concepto de correo programado ... –

+0

¡Perfecto! Exactamente lo que necesito, en el peor de los casos crearé algo muy simple que se ejecute desde mi máquina como respaldo. – mhenrixon

0

Puede tomar la idea desde this y poner su tarea en el método KeepAlive. ¡Esperanza! Ayuda.

0

Tuve el mismo problema no hace mucho tiempo, y salvo el uso de un servicio de terceros, no hay grandes maneras de evitarlo.

Dicho esto, utilicé el objeto .NET Application Cache con un tiempo de caducidad de 24 horas.

Cache["DailyTask"] = true; 

Luego, en mi clase de página base, cada vez que se hizo una solicitud de página, he comprobado la existencia de esa variable, y si existe, me encontré con la tarea. La desventaja de esto es que depende de que se realicen solicitudes de página a su aplicación.

Por último, otra forma de hacerlo es establecer una devolución de llamada en caché (método CacheItemRemovedCallback) y luego encadenar ese método para insertar un nuevo elemento en la memoria caché y repetir el ciclo .

Cuestiones relacionadas