2009-02-20 16 views
17

Mentre questa domanda è specifica per Azure, sono sicuro che si tratta di una situazione comune per il cloud computing in generale.Utilità di pianificazione di Azure

Ho un elenco di attività che devo eseguire in un determinato momento. Con il server di una finestra, posso utilizzare l'Utilità di pianificazione e pianificare il mio programma per l'esecuzione in un determinato momento. Potrei fare un ulteriore passo avanti e creare un servizio Windows che verrebbe eseguito a un dato intervallo e quindi eseguirà l'attività appropriata.

Qualcuno ha un suggerimento sull'approccio migliore per un ambiente di cloud computing?

È possibile creare un ruolo di lavoro che esegue il polling dell'elenco attività ogni secondo, quindi esegue l'attività appropriata in una coda elaborata da un altro ruolo di lavoro.

Potrei creare un ruolo di lavoro che verrebbe eseguito una volta al giorno, prendere tutte le attività e inviarle a una coda. I ruoli del processore estrarrebbero quindi un elemento dalla coda e verranno elaborati al momento opportuno.

Altri suggerimenti?

+2

Scopri i Azure Toolkit (http: //azuretoolkit.codeplex .com). Ora supporta la pianificazione dei lavori 'cron'. –

risposta

1

Duplicato di: Recommend a C# Task Scheduling Library che consiglia Quartz.Net. Recentemente ho lavorato a un progetto che ha utilizzato questo con successo in Windows.

+0

Grazie per il link. Sembra una grande biblioteca. Tuttavia, a questo punto, sono interessato alle migliori pratiche e agli approcci architettonici. –

0

Avete considerato l'utilizzo di date di scadenza variabili degli articoli in una coda di Azure?

Mi sono imbattuto in un nuovo approccio per la pianificazione che dovrebbe funzionare anche su Azure. Utilizzo di callback di voci di cache ASP.NET. Here.

+1

Come funziona per Azure: non è possibile registrarsi per la richiamata per notificare che l'elemento della coda è scaduto, e il polling e la scadenza del controllo mancheranno probabilmente gli articoli. –

8

È possibile impostare un bus coda di servizio e utilizzarlo come lo scheduler.

Inviare messaggi in coda impostando ScheduledEnqueueTimeUtc sul messaggio all'ora desiderata e il messaggio verrà visualizzato in coda in quel momento. Nel ruolo di esecuzione/web si imposta un ricevitore su quella coda e il lavoro verrà visualizzato non appena viene visualizzato il messaggio, cioè il lavoro è dovuto.

Il bello è che è possibile utilizzarlo per bilanciare i lavori tra più istanze e poiché il timer è completamente esterno all'app, non è necessario memorizzarlo, resuscitarlo e gestirlo. SB fa tutto questo per te.

Un avvertimento: SB non ha la possibilità di cancellare i messaggi programmati.

6

ora ci sono un paio di opzioni per fare questo su Azure

1

Yo può provare con le quattro offerte:

  1. Azure Worker Roles (Servizio cloud)
  2. Azure servizio di pianificazione
  3. Azure Mobile Services scheduler
  4. Azure Jobs sito web

Per ulteriori informazioni si prega di seguire il link Azure Schedule Tasks

Problemi correlati