class Japavapa implements Callable, ManagedTask, ManagedTaskListener { String word; LocalTime submit; public Japavapa(String word) { this.word = word; } public String toString() { return ":P " + word; } @Override public String call() throws Exception { Random rand = new Random(); Thread.currentThread().sleep(rand.nextInt(1000)); Matcher match = Pattern.compile("([AEIOUYaeiouy]+)").matcher(word); return match.find() ? match.replaceAll(match.group(1) + "p" + match.group(1)) : word; } @Override public ManagedTaskListener getManagedTaskListener() { return this; } @Override public Map<String, String> getExecutionProperties() { return null; } @Override public void taskSubmitted(Future<?> future, ManagedExecutorService executor, Object task) { submit = LocalTime.now(); logger.info("SUBMIT " + task + " AT " + submit + " ON " + executor); } @Override public void taskAborted(Future<?> future, ManagedExecutorService executor, Object task, Throwable exception) { logger.info("ABORTED " + task + " AFTER " + Duration.between(submit, LocalTime.now()).toMillis() + "ms ON " + Thread.currentThread().getName()); } @Override public void taskDone(Future<?> future, ManagedExecutorService executor, Object task, Throwable exception) { logger.info("DONE " + task + " AFTER " + Duration.between(submit, LocalTime.now()).toMillis() + "ms"); } @Override public void taskStarting(Future<?> future, ManagedExecutorService executor, Object task) { logger.info("STARTING " + task + " AFTER " + Duration.between(submit, LocalTime.now()).toMillis() + "ms ON " + Thread.currentThread().getName()); } }
5 May 2016
Callable ManagedTaskListener
Labels:
asynchronous,
Java EE 7,
SL-351-EE5
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment