Scenario è come:Metodo di chiamata dopo qualche ritardo in java
Nella mia applicazione, ho aperto un file, l'ho aggiornato e salvato. Una volta che l'evento salvato dal file è stato attivato, verrà eseguito un metodo abc()
. Ma ora, voglio aggiungere il ritardo dopo che l'evento di salvataggio viene sparato, diciamo 1 minuto. Quindi ho aggiunto Thread.sleep(60000)
. Ora esegue il metodo abc()
dopo 1 minuto. Fino ad ora tutto funziona bene.
Ma supponiamo che l'utente abbia salvato il file 3 volte in 1 minuto, il metodo viene eseguito 3 volte dopo ogni 1 minuto. Voglio eseguire il metodo solo una volta nel prossimo 1 minuto dopo il primo salvataggio chiamato con il contenuto del file più recente.
Come posso gestire tale scenario?
utilizzare una data di scadenza –
Utilizzare 'ScheduledExecutorService'. Salva il futuro restituito dal metodo 'schedule' e' cancel' esso se c'è un'altra azione di salvataggio in seguito. –
Duplicato di http://stackoverflow.com/questions/2258066/java-run-a-function-after-a-specific-number-of-seconds – Swapnil