类com.google.common.util.concurrent.TimeLimiter源码实例Demo

下面列出了怎么用com.google.common.util.concurrent.TimeLimiter的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: etcd-java   文件: EtcdTestSuite.java
static void waitForStartup() throws Exception {
    if (etcdProcess == null) {
        return;
    }
    ExecutorService es = Executors.newSingleThreadExecutor();
    TimeLimiter tl = SimpleTimeLimiter.create(es);
    try {
        tl.callWithTimeout(() -> {
            Reader isr = new InputStreamReader(etcdProcess.getErrorStream());
            BufferedReader br = new BufferedReader(isr);
            String line;
            while ((line = br.readLine()) != null &&
                    !line.contains("ready to serve client requests")) {
                System.out.println(line);
            }
            return null;
        }, 10L, TimeUnit.SECONDS);
    } finally {
        es.shutdown();
    }
}
 
源代码2 项目: neural   文件: AttemptTimeLimiters.java
private FixedAttemptTimeLimit(TimeLimiter timeLimiter, long duration, TimeUnit timeUnit) {
    Preconditions.checkNotNull(timeLimiter);
    Preconditions.checkNotNull(timeUnit);
    this.timeLimiter = timeLimiter;
    this.duration = duration;
    this.timeUnit = timeUnit;
}
 
源代码3 项目: neural   文件: AttemptTimeLimiters.java
private FixedAttemptTimeLimit(TimeLimiter timeLimiter, long duration, TimeUnit timeUnit) {
    Preconditions.checkNotNull(timeLimiter);
    Preconditions.checkNotNull(timeUnit);
    this.timeLimiter = timeLimiter;
    this.duration = duration;
    this.timeUnit = timeUnit;
}
 
源代码4 项目: scheduling   文件: ProgressFileReader.java
private void closeWatchService() throws Exception {
    TimeLimiter timeLimiter = new SimpleTimeLimiter();
    timeLimiter.callWithTimeout(new Callable<Boolean>() {

        @Override
        public Boolean call() throws Exception {
            watchService.close();
            watchServiceThread.join();
            return true;
        }
    }, 2, TimeUnit.SECONDS, true);
}
 
源代码5 项目: Singularity   文件: DockerUtils.java
private FixedTimeLimit(TimeLimiter timeLimiter, long duration, TimeUnit timeUnit) {
  Preconditions.checkNotNull(timeLimiter);
  Preconditions.checkNotNull(timeUnit);
  this.timeLimiter = timeLimiter;
  this.duration = duration;
  this.timeUnit = timeUnit;
}
 
源代码6 项目: presto   文件: QueryRewriter.java
private List<Column> getColumns(Connection connection, CreateTableAsSelect createTableAsSelect)
        throws SQLException
{
    io.prestosql.sql.tree.Query createSelectClause = createTableAsSelect.getQuery();

    // Rewrite the query to select zero rows, so that we can get the column names and types
    QueryBody innerQuery = createSelectClause.getQueryBody();
    io.prestosql.sql.tree.Query zeroRowsQuery;
    if (innerQuery instanceof QuerySpecification) {
        QuerySpecification querySpecification = (QuerySpecification) innerQuery;
        innerQuery = new QuerySpecification(
                querySpecification.getSelect(),
                querySpecification.getFrom(),
                querySpecification.getWhere(),
                querySpecification.getGroupBy(),
                querySpecification.getHaving(),
                querySpecification.getOrderBy(),
                querySpecification.getOffset(),
                Optional.of(new Limit("0")));

        zeroRowsQuery = new io.prestosql.sql.tree.Query(createSelectClause.getWith(), innerQuery, Optional.empty(), Optional.empty(), Optional.empty());
    }
    else {
        zeroRowsQuery = new io.prestosql.sql.tree.Query(createSelectClause.getWith(), innerQuery, Optional.empty(), Optional.empty(), Optional.of(new Limit("0")));
    }

    ImmutableList.Builder<Column> columns = ImmutableList.builder();
    try (java.sql.Statement jdbcStatement = connection.createStatement()) {
        ExecutorService executor = newSingleThreadExecutor();
        TimeLimiter limiter = SimpleTimeLimiter.create(executor);
        java.sql.Statement limitedStatement = limiter.newProxy(jdbcStatement, java.sql.Statement.class, timeout.toMillis(), TimeUnit.MILLISECONDS);
        try (ResultSet resultSet = limitedStatement.executeQuery(formatSql(zeroRowsQuery))) {
            ResultSetMetaData metaData = resultSet.getMetaData();
            for (int i = 1; i <= metaData.getColumnCount(); i++) {
                String name = metaData.getColumnName(i);
                int type = metaData.getColumnType(i);
                columns.add(new Column(name, APPROXIMATE_TYPES.contains(type)));
            }
        }
        catch (UncheckedTimeoutException e) {
            throw new SQLException("SQL statement execution timed out", e);
        }
        finally {
            executor.shutdownNow();
        }
    }

    return columns.build();
}
 
源代码7 项目: presto   文件: TimeoutBackupStore.java
private static <T> T timeLimited(T target, Class<T> clazz, Duration timeout, ExecutorService executor, int maxThreads)
{
    executor = new ExecutorServiceAdapter(new BoundedExecutor(executor, maxThreads));
    TimeLimiter limiter = SimpleTimeLimiter.create(executor);
    return limiter.newProxy(target, clazz, timeout.toMillis(), MILLISECONDS);
}
 
源代码8 项目: nomulus   文件: AppEngineTimeLimiter.java
public static TimeLimiter create() {
  return SimpleTimeLimiter.create(new NewRequestThreadExecutorService());
}
 
 同包方法