List of usage examples for org.joda.time Period Period
public Period(Object period)
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); }