Minor refactoring
This commit is contained in:
parent
ac9e738018
commit
5993b8b963
@ -15,6 +15,7 @@
|
||||
*/
|
||||
package org.thingsboard.server.common.msg.queue;
|
||||
|
||||
import com.google.common.util.concurrent.SettableFuture;
|
||||
import org.thingsboard.server.common.data.id.EntityId;
|
||||
|
||||
import java.util.UUID;
|
||||
@ -34,7 +35,7 @@ public interface TbCallback {
|
||||
}
|
||||
};
|
||||
|
||||
default UUID getId(){
|
||||
default UUID getId() {
|
||||
return EntityId.NULL_UUID;
|
||||
}
|
||||
|
||||
@ -42,4 +43,18 @@ public interface TbCallback {
|
||||
|
||||
void onFailure(Throwable t);
|
||||
|
||||
static <V> TbCallback wrap(SettableFuture<V> future) {
|
||||
return new TbCallback() {
|
||||
@Override
|
||||
public void onSuccess() {
|
||||
future.set(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
future.setException(t);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -183,6 +183,15 @@ public abstract class TaskProcessor<T extends Task<R>, R extends TaskResult> {
|
||||
discardedJobs.add(jobId);
|
||||
}
|
||||
|
||||
protected <V> V wait(Future<V> future) throws Exception {
|
||||
try {
|
||||
return future.get(); // will be interrupted after task processing timeout
|
||||
} catch (InterruptedException e) {
|
||||
future.cancel(true); // interrupting the underlying task
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
@PreDestroy
|
||||
public void destroy() {
|
||||
taskConsumer.stop();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user