本文整理汇总了Java中com.google.common.util.concurrent.Service.startAsync方法的典型用法代码示例。如果您正苦于以下问题:Java Service.startAsync方法的具体用法?Java Service.startAsync怎么用?Java Service.startAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.google.common.util.concurrent.Service
的用法示例。
在下文中一共展示了Service.startAsync方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: startAsync
import com.google.common.util.concurrent.Service; //导入方法依赖的package包/类
/**
* Asynchronously starts a Service and returns a CompletableFuture that will indicate when it is running.
*
* @param service The Service to start.
* @param executor An Executor to use for callback invocations.
* @return A CompletableFuture that will be completed when the service enters a RUNNING state, or completed
* exceptionally if the service failed to start.
*/
public static CompletableFuture<Void> startAsync(Service service, Executor executor) {
// Service.startAsync() will fail if the service is not in a NEW state. That is, if it is already RUNNING or
// STARTED, then the method will fail synchronously, hence we are not in danger of not invoking our callbacks,
// as long as we register the Listener before we attempt to start.
// Nevertheless, do make a sanity check since once added, a Listener cannot be removed.
Preconditions.checkState(service.state() == Service.State.NEW,
"Service expected to be %s but was %s.", Service.State.NEW, service.state());
Preconditions.checkNotNull(executor, "executor");
CompletableFuture<Void> result = new CompletableFuture<>();
service.addListener(new StartupListener(result), executor);
service.startAsync();
return result;
}