class AbstractController implements Controller {

    @Override
    public <T> Future<T> background(final BackgroundAction<T> action) {
        if(registry.contains(action)) {
            log.warn(String.format("Skip duplicate background action %s found in registry", action));
            return ConcurrentUtils.constantFuture(null);
        }
        return DefaultBackgroundExecutor.get().execute(this, registry, action);
    }

}