Example usage for org.joda.time DateTime getMillis

List of usage examples for org.joda.time DateTime getMillis

Introduction

In this page you can find the example usage for org.joda.time DateTime getMillis.

Prototype

public long getMillis() 

Source Link

Document

Gets the milliseconds of the datetime instant from the Java epoch of 1970-01-01T00:00:00Z.

Usage

From source file:com.facebook.presto.connector.system.TaskSystemTable.java

License:Apache License

private static Long toTimeStamp(DateTime dateTime) {
    if (dateTime == null) {
        return null;
    }/*from  www .j a  v  a 2 s  .co m*/
    return dateTime.getMillis();
}

From source file:com.facebook.presto.event.query.QueryMonitor.java

License:Apache License

private void logQueryTimeline(QueryInfo queryInfo) {
    try {//ww  w .  ja  va  2s. co  m
        QueryStats queryStats = queryInfo.getQueryStats();
        DateTime queryStartTime = queryStats.getCreateTime();
        DateTime queryEndTime = queryStats.getEndTime();

        // query didn't finish cleanly
        if (queryStartTime == null || queryEndTime == null) {
            return;
        }

        // planning duration -- start to end of planning
        Duration planning = queryStats.getTotalPlanningTime();
        if (planning == null) {
            planning = new Duration(0, MILLISECONDS);
        }

        List<StageInfo> stages = StageInfo.getAllStages(queryInfo.getOutputStage());
        // long lastSchedulingCompletion = 0;
        long firstTaskStartTime = queryEndTime.getMillis();
        long lastTaskStartTime = queryStartTime.getMillis() + planning.toMillis();
        long lastTaskEndTime = queryStartTime.getMillis() + planning.toMillis();
        for (StageInfo stage : stages) {
            // only consider leaf stages
            if (!stage.getSubStages().isEmpty()) {
                continue;
            }

            for (TaskInfo taskInfo : stage.getTasks()) {
                TaskStats taskStats = taskInfo.getStats();

                DateTime firstStartTime = taskStats.getFirstStartTime();
                if (firstStartTime != null) {
                    firstTaskStartTime = Math.min(firstStartTime.getMillis(), firstTaskStartTime);
                }

                DateTime lastStartTime = taskStats.getLastStartTime();
                if (lastStartTime != null) {
                    lastTaskStartTime = Math.max(lastStartTime.getMillis(), lastTaskStartTime);
                }

                DateTime endTime = taskStats.getEndTime();
                if (endTime != null) {
                    lastTaskEndTime = Math.max(endTime.getMillis(), lastTaskEndTime);
                }
            }
        }

        Duration elapsed = millis(queryEndTime.getMillis() - queryStartTime.getMillis());

        Duration scheduling = millis(firstTaskStartTime - queryStartTime.getMillis() - planning.toMillis());

        Duration running = millis(lastTaskEndTime - firstTaskStartTime);

        Duration finishing = millis(queryEndTime.getMillis() - lastTaskEndTime);

        log.info(
                "TIMELINE: Query %s :: elapsed %s :: planning %s :: scheduling %s :: running %s :: finishing %s :: begin %s :: end %s",
                queryInfo.getQueryId(), elapsed, planning, scheduling, running, finishing, queryStartTime,
                queryEndTime);
    } catch (Exception e) {
        log.error(e, "Error logging query timeline");
    }
}

From source file:com.facebook.presto.event.QueryMonitor.java

License:Apache License

private static void logQueryTimeline(QueryInfo queryInfo) {
    try {//from w w w  .java  2  s . c  om
        QueryStats queryStats = queryInfo.getQueryStats();
        DateTime queryStartTime = queryStats.getCreateTime();
        DateTime queryEndTime = queryStats.getEndTime();

        // query didn't finish cleanly
        if (queryStartTime == null || queryEndTime == null) {
            return;
        }

        // planning duration -- start to end of planning
        long planning = queryStats.getTotalPlanningTime().toMillis();

        List<StageInfo> stages = StageInfo.getAllStages(queryInfo.getOutputStage());
        // long lastSchedulingCompletion = 0;
        long firstTaskStartTime = queryEndTime.getMillis();
        long lastTaskStartTime = queryStartTime.getMillis() + planning;
        long lastTaskEndTime = queryStartTime.getMillis() + planning;
        for (StageInfo stage : stages) {
            // only consider leaf stages
            if (!stage.getSubStages().isEmpty()) {
                continue;
            }

            for (TaskInfo taskInfo : stage.getTasks()) {
                TaskStats taskStats = taskInfo.getStats();

                DateTime firstStartTime = taskStats.getFirstStartTime();
                if (firstStartTime != null) {
                    firstTaskStartTime = Math.min(firstStartTime.getMillis(), firstTaskStartTime);
                }

                DateTime lastStartTime = taskStats.getLastStartTime();
                if (lastStartTime != null) {
                    lastTaskStartTime = max(lastStartTime.getMillis(), lastTaskStartTime);
                }

                DateTime endTime = taskStats.getEndTime();
                if (endTime != null) {
                    lastTaskEndTime = max(endTime.getMillis(), lastTaskEndTime);
                }
            }
        }

        long elapsed = max(queryEndTime.getMillis() - queryStartTime.getMillis(), 0);
        long scheduling = max(firstTaskStartTime - queryStartTime.getMillis() - planning, 0);
        long running = max(lastTaskEndTime - firstTaskStartTime, 0);
        long finishing = max(queryEndTime.getMillis() - lastTaskEndTime, 0);

        logQueryTimeline(queryInfo.getQueryId(),
                queryInfo.getSession().getTransactionId().map(TransactionId::toString).orElse(""), elapsed,
                planning, scheduling, running, finishing, queryStartTime, queryEndTime);
    } catch (Exception e) {
        log.error(e, "Error logging query timeline");
    }
}

From source file:com.facebook.presto.event.QueryMonitor.java

License:Apache License

private static void logQueryTimeline(BasicQueryInfo queryInfo) {
    DateTime queryStartTime = queryInfo.getQueryStats().getCreateTime();
    DateTime queryEndTime = queryInfo.getQueryStats().getEndTime();

    // query didn't finish cleanly
    if (queryStartTime == null || queryEndTime == null) {
        return;// w  ww.j a va 2s.c o m
    }

    long elapsed = max(queryEndTime.getMillis() - queryStartTime.getMillis(), 0);

    logQueryTimeline(queryInfo.getQueryId(),
            queryInfo.getSession().getTransactionId().map(TransactionId::toString).orElse(""), elapsed, elapsed,
            0, 0, 0, queryStartTime, queryEndTime);
}

From source file:com.facebook.presto.testing.DateTimeTestingUtils.java

License:Apache License

private static SqlTimestamp sqlTimestampOf(DateTime dateTime, ConnectorSession session) {
    return sqlTimestampOf(dateTime.getMillis(), session);
}

From source file:com.facebook.presto.util.DateTimeZoneIndex.java

License:Apache License

public static long packDateTimeWithZone(DateTime dateTime) {
    return DateTimeEncoding.packDateTimeWithZone(dateTime.getMillis(), dateTime.getZone().getID());
}

From source file:com.facebook.util.TimeInterval.java

License:Apache License

/**
 * Gets the start instant of the time interval that will contain the
 * supplied time instant. Note that the time zone of the supplied instant
 * plays a significant role in computation of the interval.
 *
 * @param instant the time instant//from  www  . j a  v  a  2 s . c o  m
 *
 * @return the start instant of the time interval that will contain the
 * instant in the time zone of the supplied instant. If the TimeInterval is INFINITE
 * unix epoch for the timezone is returned.
 */
public DateTime getIntervalStart(DateTime instant) {
    // special handling for ZERO and INFINITE
    if (this == ZERO) {
        return instant;
    } else if (this == INFINITE) {
        return new DateTime(1970, 1, 1, 0, 0, 0, 0, instant.getZone());
    }

    if (type == null) {
        // unix epoch for the timezone.
        DateTime startOfTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, instant.getZone());
        long intervalStart = ((instant.getMillis() - startOfTime.getMillis()) / length) * length;
        return startOfTime.plus(intervalStart);
    } else {
        return type.getTimeIntervalStart(instant, length);
    }
}

From source file:com.facebook.util.TimeUtil.java

License:Apache License

/**
 * these methods affect only code that relies on DateTimeUtils.currentTimeMillis()
 *
 * NOTE: manipulation of {@link DateTimeUtils.currentTimeMillis()} is not thread safe
 * to begin with, so neither is this//from  ww  w . j a  v a2 s.  c om
 */
public static void setNow(DateTime now) {
    DateTimeUtils.setCurrentMillisFixed(now.getMillis());
}

From source file:com.fengduo.bee.commons.util.TimeHelper.java

License:Open Source License

private static long calcDelay(DateTime targetDatetimeOfToday) {
    long delay = 0;
    DateTime now = new DateTime();

    // ??//from   w w  w.ja  va2  s.c  o  m
    if (now.isAfter(targetDatetimeOfToday)) {
        delay = now.plusDays(1).getMillis() - now.getMillis();

        // 
    } else {
        delay = targetDatetimeOfToday.getMillis() - now.getMillis();
    }

    return delay;
}

From source file:com.flipkart.foxtrot.core.querystore.impl.ElasticsearchUtils.java

License:Apache License

@VisibleForTesting
public static String[] getIndices(final String table, final ActionRequest request, final Interval interval) {
    DateTime start = interval.getStart().toLocalDate().toDateTimeAtStartOfDay();
    if (start.getYear() <= 1970) {
        logger.warn("Request of type {} running on all indices", request.getClass().getSimpleName());
        return new String[] { getIndices(table) };
    }/*from w w  w .jav  a 2s  .c  om*/
    List<String> indices = Lists.newArrayList();
    final DateTime end = interval.getEnd().plusDays(1).toLocalDate().toDateTimeAtStartOfDay();
    while (start.getMillis() < end.getMillis()) {
        final String index = getCurrentIndex(table, start.getMillis());
        indices.add(index);
        start = start.plusDays(1);
    }
    logger.info("Request of type {} on indices: {}", request.getClass().getSimpleName(), indices);
    return indices.toArray(new String[indices.size()]);
}