2014-04-04 13 views

risposta

8

Quartz Documentation

@DisallowConcurrentExecution è un'annotazione che può essere aggiunto alla classe lavoro che racconta quarzo di non eseguire più istanze di un dato definizione di lavoro (che si riferisce alla data classe di lavoro) in concomitanza . Si noti la formulazione lì, in quanto è stato scelto molto attentamente . Nell'esempio della sezione precedente, se "SalesReportJob" ha questa annotazione, che solo un'istanza di "SalesReportForJoe" può essere eseguita in un determinato momento, ma è possibile eseguire contemporaneamente a un'istanza di "SalesReportForMike". Il vincolo si basa su una definizione di istanza (JobDetail), non su istanze di della classe di lavoro. Tuttavia, è stato deciso (durante la progettazione di Quartz) di portare l'annotazione sulla classe stessa, perché fa lo spesso a fare la differenza su come la classe è codificata.

Se non volete SalesReportForMike e SalesReportForJoe per eseguire contemporaneamente, quindi è possibile impostare le dimensioni del ThreadPool scheduler a 1. Quindi, in un dato momento solo un posto di lavoro verrà eseguito.

prendere anche uno sguardo al StatefulJob

+0

StatefulJob è perfetto, grazie. – victorio

1

Dai un'occhiata all'annotazione DisallowConcurrentExecution che impedirà l'esecuzione contemporanea di più istanze dello stesso lavoro.

+0

che dovrebbe essere buono, ma io sto usando 1.8, e non posso aggiornarlo. – victorio

Problemi correlati