Domanda

Al momento sto implementando Quartz.net in una semplice applicazione che dovrebbe eseguire un pezzo di codice ogni (per esempio) 5 secondi. Solo ora il codice prende a volte più di 5 secondi per completare.

All'inizio avevo il problema che il codice è stato eseguito mentre lo stesso codice era ancora in funzione, Ho fissato questo utilizzando l'interfaccia IStateFulJob invece dell'interfaccia IJob.

Ma quello che mi piacerebbe davvero realizzare è, che il mio lavoro viene eseguito 5 secondi dopo il lavoro è completato, non 5 secondi dopo il mio lavoro precedente viene avviato.

I naturalmente potuto gestire l'evento che si attiva quando il mio ascoltatore 'sente' che il lavoro è pronto e ri-programmare il lavoro, ma mi chiedevo se non c'è alcuna funzionalità standard per questo.

È stato utile?

Soluzione

Al momento non esiste un modo standard per raggiungere questo obiettivo come Quartz.NET gioca sull'idea di avere un (calcolato in anticipo) di tempo predefinito e il fuoco di polling per momento giusto per far scattare il lavoro.

Il modo in cui hai descritto sarebbe la via più facile. Sia pianificazione dal lavoro prossima esecuzione o dall'ascoltatore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top