2009-02-20 32 views
17

Si bien esta pregunta es particular de Azure, estoy seguro de que es una situación común para la informática en la nube en general.Programador de tareas de Azure

Tengo una lista de tareas que necesito ejecutar en un momento determinado. Con el servidor de una ventana, puedo usar el Programador de tareas y programar mi programa para que se ejecute en un momento determinado. Podría dar un paso más y crear un servicio de Windows que se ejecutaría en un intervalo determinado y luego ejecutar la tarea adecuada.

¿Alguien tiene alguna sugerencia sobre el mejor enfoque para un entorno de computación en la nube?

Podría crear un rol de trabajador que sondee la lista de tareas cada segundo y luego arroje la tarea apropiada en una cola procesada por otra función de trabajador.

Podría crear una función de trabajador que se ejecutaría una vez al día, tomar todas las tareas y enviarlas a una cola. Las funciones del procesador retirarían un elemento de la cola y lo procesarían en el momento apropiado.

¿Alguna otra sugerencia?

+2

Mira la Azure Toolkit (http: //azuretoolkit.codeplex .com). Ahora es compatible con la programación de trabajos 'cron'. –

Respuesta

1

Duplicado de: Recommend a C# Task Scheduling Library que recomienda Quartz.Net. Recientemente trabajé en un proyecto que lo utilizó con éxito en Windows.

+0

Gracias por el enlace. Eso parece una gran biblioteca. Sin embargo, en este punto, estoy interesado en las mejores prácticas y enfoques arquitectónicos. –

0

¿Ha considerado usar fechas de caducidad variables de los artículos en una cola de Azure?

Encontré un nuevo enfoque para la programación que también debería funcionar en Azure. Usar devoluciones de llamada de elementos de caché ASP.NET. Here.

+1

¿Cómo funcionaría esto para Azure? No puede registrarse para la devolución de llamada para notificar que el elemento de la cola ha expirado, y es posible que los datos de la encuesta y la caducidad falten. –

8

Puede configurar un servicio de autobuses de la cola y usar eso como el planificador.

Enviar mensajes a la cola configurando ScheduledEnqueueTimeUtc en el mensaje a la hora deseada y el mensaje se mostrará en la cola en ese momento. En la función de trabajador/web ejecutor, configura un receptor en esa cola y luego obtendrá el trabajo tan pronto como aparezca el mensaje, es decir, el trabajo se debe.

Lo bueno de esto es que puedes usar esto para equilibrar trabajos en varias instancias y dado que el temporizador es completamente externo a tu aplicación, no tienes que almacenarla, resucitarla y administrarla. SB hace todo eso por ti.

Una advertencia: SB no tiene la posibilidad de cancelar mensajes programados.

1

Puedes probar con los de las cuatro ofertas:

  1. Roles de trabajador azul (Servicio en la nube)
  2. servicio
  3. Azure Mobile Services planificador
  4. Azure Empleo Sitios Web Web
  5. Azure Programador

Para obtener más información haga click en la Azure Schedule Tasks

Cuestiones relacionadas