2011-08-24 6 views
5

Actualmente tengo un ejecutor programado que envía un mensaje después de un retraso como esta previsto Necesito detener el envío del mensaje anterior. Si no se recibe un mensaje de cancelación, lo anterior se envía normalmente. ¿Cuál es la mejor manera de hacer esto?Cancelación del ejecutor

Gracias.

Respuesta

9

Esto se puede hacer mediante el uso del valor de retorno de

ScheduledFuture<?> future = executor.schedule(new Runnable() { 
     public void run() { 
     emitter.emit(message); 
    } 
    }, delay, TimeUnit.MILLISECONDS); 
future.cancel(true); //true if task should be interrupted 

o utilizando el método de parada() del ejecutor.
Eche un vistazo a shutdown() y cancel()

Cuestiones relacionadas