Example usage for org.joda.time Period Period

List of usage examples for org.joda.time Period Period

Introduction

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

Prototype

public Period(Object period) 

Source Link

Document

Creates a period by converting or copying from another object.

Usage

From source file:com.metamx.druid.db.DatabaseRuleManager.java

License:Open Source License

public static void createDefaultRule(final DBI dbi, final String ruleTable, final String defaultDatasource,
        final ObjectMapper jsonMapper) {
    try {//from  w w w. j av a2  s.  co m
        dbi.withHandle(new HandleCallback<Void>() {
            @Override
            public Void withHandle(Handle handle) throws Exception {
                List<Map<String, Object>> existing = handle.select(String
                        .format("SELECT id from %s where datasource='%s';", ruleTable, defaultDatasource));

                if (!existing.isEmpty()) {
                    return null;
                }

                final List<Rule> defaultRules = Arrays
                        .<Rule>asList(new PeriodLoadRule(new Period("P5000Y"), 2, "_default_tier"));
                final String version = new DateTime().toString();
                handle.createStatement(String.format(
                        "INSERT INTO %s (id, dataSource, version, payload) VALUES (:id, :dataSource, :version, :payload)",
                        ruleTable)).bind("id", String.format("%s_%s", defaultDatasource, version))
                        .bind("dataSource", defaultDatasource).bind("version", version)
                        .bind("payload", jsonMapper.writeValueAsString(defaultRules)).execute();

                return null;
            }
        });
    } catch (Exception e) {
        throw Throwables.propagate(e);
    }
}

From source file:com.metamx.druid.indexing.coordinator.scaling.ResourceManagementScheduler.java

License:Open Source License

@LifecycleStart
public void start() {
    synchronized (lock) {
        if (started) {
            return;
        }//from w ww .j  a v a 2 s .co m

        log.info("Started Resource Management Scheduler");

        ScheduledExecutors.scheduleAtFixedRate(exec, config.getProvisionResourcesDuration(), new Runnable() {
            @Override
            public void run() {
                resourceManagementStrategy.doProvision(taskRunner.getPendingTasks(), taskRunner.getWorkers());
            }
        });

        // Schedule termination of worker nodes periodically
        Period period = new Period(config.getTerminateResourcesDuration());
        PeriodGranularity granularity = new PeriodGranularity(period,
                config.getTerminateResourcesOriginDateTime(), null);
        final long startTime = granularity.next(granularity.truncate(new DateTime().getMillis()));

        ScheduledExecutors.scheduleAtFixedRate(exec, new Duration(System.currentTimeMillis(), startTime),
                config.getTerminateResourcesDuration(), new Runnable() {
                    @Override
                    public void run() {
                        resourceManagementStrategy.doTerminate(taskRunner.getPendingTasks(),
                                taskRunner.getWorkers());
                    }
                });

        started = true;
    }
}

From source file:com.metamx.druid.merger.coordinator.RemoteTaskRunner.java

License:Open Source License

@LifecycleStart
public void start() {
    try {//from   w ww .  ja  v  a 2  s.  c  o  m
        workerPathCache.getListenable().addListener(new PathChildrenCacheListener() {
            @Override
            public void childEvent(CuratorFramework client, final PathChildrenCacheEvent event)
                    throws Exception {
                if (event.getType().equals(PathChildrenCacheEvent.Type.CHILD_ADDED)) {
                    final Worker worker = jsonMapper.readValue(event.getData().getData(), Worker.class);
                    log.info("New worker[%s] found!", worker.getHost());
                    addWorker(worker);
                } else if (event.getType().equals(PathChildrenCacheEvent.Type.CHILD_REMOVED)) {
                    final Worker worker = jsonMapper.readValue(event.getData().getData(), Worker.class);
                    log.info("Worker[%s] removed!", worker.getHost());
                    removeWorker(worker);
                }
            }
        });
        workerPathCache.start();

        // Schedule termination of worker nodes periodically
        Period period = new Period(config.getTerminateResourcesDuration());
        PeriodGranularity granularity = new PeriodGranularity(period,
                config.getTerminateResourcesOriginDateTime(), null);
        final long startTime = granularity.next(granularity.truncate(new DateTime().getMillis()));

        ScheduledExecutors.scheduleAtFixedRate(scheduledExec,
                new Duration(System.currentTimeMillis(), startTime), config.getTerminateResourcesDuration(),
                new Runnable() {
                    @Override
                    public void run() {
                        if (currentlyTerminating.isEmpty()) {
                            if (zkWorkers.size() <= workerSetupManager.getWorkerSetupData()
                                    .getMinNumWorkers()) {
                                return;
                            }

                            int workerCount = 0;
                            List<WorkerWrapper> thoseLazyWorkers = Lists.newArrayList();
                            for (WorkerWrapper workerWrapper : zkWorkers.values()) {
                                workerCount++;

                                if (workerCount > workerSetupManager.getWorkerSetupData().getMinNumWorkers()
                                        && workerWrapper.getRunningTasks().isEmpty()
                                        && System.currentTimeMillis()
                                                - workerWrapper.getLastCompletedTaskTime().getMillis() > config
                                                        .getMaxWorkerIdleTimeMillisBeforeDeletion()) {
                                    thoseLazyWorkers.add(workerWrapper);
                                }
                            }

                            AutoScalingData terminated = strategy.terminate(
                                    Lists.transform(thoseLazyWorkers, new Function<WorkerWrapper, String>() {
                                        @Override
                                        public String apply(WorkerWrapper input) {
                                            return input.getWorker().getIp();
                                        }
                                    }));

                            if (terminated != null) {
                                currentlyTerminating.addAll(terminated.getNodeIds());
                                lastTerminateTime = new DateTime();
                            }
                        } else {
                            Duration durSinceLastTerminate = new Duration(new DateTime(), lastTerminateTime);
                            if (durSinceLastTerminate.isLongerThan(config.getMaxScalingDuration())) {
                                log.makeAlert("Worker node termination taking too long")
                                        .addData("millisSinceLastTerminate", durSinceLastTerminate.getMillis())
                                        .addData("terminatingCount", currentlyTerminating.size()).emit();
                            }

                            log.info(
                                    "%s still terminating. Wait for all nodes to terminate before trying again.",
                                    currentlyTerminating);
                        }
                    }
                });
        started = true;
    } catch (Exception e) {
        throw Throwables.propagate(e);
    }
}

From source file:com.microsoft.azure.management.servicebus.implementation.TimeSpan.java

License:Open Source License

/**
 * Gets TimeSpan from given period.//from www . j  a v a  2  s  . com
 *
 * @param period duration in period format
 * @return TimeSpan
 */
public static TimeSpan fromPeriod(Period period) {
    // Normalize (e.g. move weeks to hour part)
    //
    Period p = new Period(period.toStandardDuration().getMillis());
    return TimeSpan
            .parse((new TimeSpan().withDays(p.getDays()).withHours(p.getHours()).withMinutes(p.getMinutes())
                    .withSeconds(p.getSeconds()).withMilliseconds(p.getMillis())).toString());
}

From source file:com.mirth.connect.server.util.LoginRequirementsChecker.java

License:Open Source License

public String getPrintableStrikeTimeRemaining() {
    Period period;/*from   ww  w  . java 2  s.c  o m*/
    synchronized (userLoginStrikes) {
        period = new Period(getStrikeTimeRemaining());
    }

    PeriodFormatter periodFormatter;
    if (period.toStandardMinutes().getMinutes() > 0) {
        periodFormatter = new PeriodFormatterBuilder().printZeroNever().appendHours()
                .appendSuffix(" hour", " hours").appendSeparator(" and ").printZeroAlways().appendMinutes()
                .appendSuffix(" minute", " minutes").toFormatter();
    } else {
        periodFormatter = new PeriodFormatterBuilder().printZeroAlways().appendSeconds()
                .appendSuffix(" second", " seconds").toFormatter();
    }

    return periodFormatter.print(period);
}

From source file:com.mirth.connect.server.util.LoginRequirementsChecker.java

License:Open Source License

public String getPrintableGraceTimeRemaining(long graceTimeRemaining) {
    Period period = new Period(graceTimeRemaining);

    PeriodFormatter periodFormatter;/* w  w w .  j  a  va 2s.  c o  m*/
    if (period.toStandardHours().getHours() > 0) {
        periodFormatter = new PeriodFormatterBuilder().printZeroRarelyFirst().appendDays()
                .appendSuffix(" day", " days").appendSeparator(" and ").printZeroAlways().appendHours()
                .appendSuffix(" hour", " hours").toFormatter();
    } else {
        periodFormatter = new PeriodFormatterBuilder().printZeroNever().appendMinutes()
                .appendSuffix(" minute", " minutes").appendSeparator(" and ").printZeroAlways().appendSeconds()
                .appendSuffix(" second", " seconds").toFormatter();
    }

    return periodFormatter.print(period);
}

From source file:com.nestedbird.components.bridges.JodaPeriodSplitBridge.java

License:Open Source License

@Override
public String objectToString(final Object value) {
    final Period period = (Period) Optional.ofNullable(value).orElse(new Period(0));

    return String.valueOf(period.getSeconds());
}

From source file:com.nestedbird.components.bridges.JodaPeriodSplitBridge.java

License:Open Source License

@Override
public void save(final String name, final Object value, final BridgeController.Presets presets) {
    if (value != null) {
        final Period period = (Period) value;
        presets.recordPeriod(period);/*from w ww. ja va2 s  .  c  o m*/
    } else {
        presets.recordPeriod(new Period(0));
    }
}

From source file:com.nestedbird.models.event.ParsedEventData.java

License:Open Source License

@Builder
private ParsedEventData(final String eventId, final DateTime startTime, final Period duration) {

    // Null safe//from   w  w w  . jav a 2  s  . c  om
    this.eventId = Optional.ofNullable(eventId).orElse("");
    this.startTime = Optional.ofNullable(startTime).orElse(new DateTime());
    this.duration = Optional.ofNullable(duration).orElse(new Period(0));
}

From source file:com.netflix.suro.queue.FileQueue4Sink.java

License:Apache License

@JsonCreator
public FileQueue4Sink(@JsonProperty("path") String path, @JsonProperty("name") String name,
        @JsonProperty("gcPeriod") String gcPeriod, @JsonProperty("sizeLimit") long sizeLimit)
        throws IOException {

    queue = new FileBlockingQueue<Message>(path, name,
            new Period(gcPeriod == null ? "PT1m" : gcPeriod).toStandardSeconds().getSeconds(),
            new MessageSerDe(), sizeLimit == 0 ? Long.MAX_VALUE : sizeLimit);
}