List of usage examples for org.apache.commons.lang.time DurationFormatUtils formatDurationWords
public static String formatDurationWords(long durationMillis, boolean suppressLeadingZeroElements, boolean suppressTrailingZeroElements)
Formats an elapsed time into a plurialization correct string.
This method formats durations using the days and lower fields of the format pattern.
From source file:au.id.hazelwood.xmltvguidebuilder.utils.DateTimeUtils.java
public static String formatDurationWords(long duration) { return DurationFormatUtils.formatDurationWords(duration, true, true); }
From source file:de.unileipzig.ub.scroller.Main.java
public static void main(String[] args) throws IOException { Options options = new Options(); // add t option options.addOption("h", "help", false, "display this help"); // elasticsearch options options.addOption("t", "host", true, "elasticsearch hostname (default: 0.0.0.0)"); options.addOption("p", "port", true, "transport port (that's NOT the http port, default: 9300)"); options.addOption("c", "cluster", true, "cluster name (default: elasticsearch_mdma)"); options.addOption("i", "index", true, "index to use"); options.addOption("f", "filter", true, "filter(s) - e.g. meta.kind=title"); options.addOption("j", "junctor", true, "values: and, or (default: and)"); options.addOption("n", "notice-every", true, "show speed after every N items"); options.addOption("v", "verbose", false, "be verbose"); // options.addOption("z", "end-of-message", true, "sentinel to print to stdout, once the regular input finished (default: EOM)"); CommandLineParser parser = new PosixParser(); CommandLine cmd = null;/*w ww .jav a 2 s .c o m*/ try { cmd = parser.parse(options, args); } catch (ParseException ex) { logger.error(ex); System.exit(1); } // process options if (cmd.hasOption("h")) { HelpFormatter formatter = new HelpFormatter(); formatter.printHelp("scroller", options, true); System.exit(0); } String endOfMessage = "EOM"; boolean verbose = false; if (cmd.hasOption("verbose")) { verbose = true; } if (!cmd.hasOption("i")) { System.err.println("error: no index specified"); System.exit(1); } long noticeEvery = 10000; if (cmd.hasOption("n")) { noticeEvery = Long.parseLong(cmd.getOptionValue("n")); } // ES options String[] hosts = new String[] { "0.0.0.0" }; int port = 9300; String clusterName = "elasticsearch_mdma"; int bulkSize = 3000; if (cmd.hasOption("host")) { hosts = cmd.getOptionValues("host"); } if (cmd.hasOption("port")) { port = Integer.parseInt(cmd.getOptionValue("port")); } if (cmd.hasOption("cluster")) { clusterName = cmd.getOptionValue("cluster"); } // Index String indexName = cmd.getOptionValue("index"); Map<String, String> filterMap = new HashMap<String, String>(); if (cmd.hasOption("filter")) { try { filterMap = getMapForKeys(cmd.getOptionValues("filter")); } catch (ParseException pe) { System.err.println(pe); System.exit(1); } } Collection<HashMap> filterList = new ArrayList<HashMap>(); if (cmd.hasOption("filter")) { try { filterList = getFilterList(cmd.getOptionValues("filter")); } catch (ParseException pe) { System.err.println(pe); System.exit(1); } } // ES Client final Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", "elasticsearch_mdma") .put("client.transport.ping_timeout", "60s").build(); final TransportClient client = new TransportClient(settings); for (String host : hosts) { client.addTransportAddress(new InetSocketTransportAddress(host, port)); } // build the query String junctor = "and"; if (cmd.hasOption("j")) { junctor = cmd.getOptionValue("j"); } // ArrayList<TermFilterBuilder> filters = new ArrayList<TermFilterBuilder>(); // if (filterMap.size() > 0) { // for (Map.Entry<String, String> entry : filterMap.entrySet()) { // filters.add(new TermFilterBuilder(entry.getKey(), entry.getValue())); // } // } ArrayList<TermFilterBuilder> filters = new ArrayList<TermFilterBuilder>(); if (filterList.size() > 0) { for (HashMap map : filterList) { for (Object obj : map.entrySet()) { Map.Entry entry = (Map.Entry) obj; filters.add(new TermFilterBuilder(entry.getKey().toString(), entry.getValue().toString())); } } } FilterBuilder fb = null; if (junctor.equals("and")) { AndFilterBuilder afb = new AndFilterBuilder(); for (TermFilterBuilder tfb : filters) { afb.add(tfb); } fb = afb; } if (junctor.equals("or")) { OrFilterBuilder ofb = new OrFilterBuilder(); for (TermFilterBuilder tfb : filters) { ofb.add(tfb); } fb = ofb; } // TermFilterBuilder tfb0 = new TermFilterBuilder("meta.kind", "title"); // TermFilterBuilder tfb1 = new TermFilterBuilder("meta.timestamp", "201112081240"); // // AndFilterBuilder afb0 = new AndFilterBuilder(tfb0, tfb1); QueryBuilder qb0 = null; if (filterMap.isEmpty()) { qb0 = matchAllQuery(); } else { qb0 = filteredQuery(matchAllQuery(), fb); } // sorting // FieldSortBuilder sortBuilder = new FieldSortBuilder("meta.timestamp"); // sortBuilder.order(SortOrder.DESC); // FilteredQueryBuilder fqb0 = filteredQuery(matchAllQuery(), tfb0); final CountResponse countResponse = client.prepareCount(indexName).setQuery(qb0).execute().actionGet(); final long total = countResponse.getCount(); SearchResponse scrollResp = client.prepareSearch(indexName).setSearchType(SearchType.SCAN) .setScroll(new TimeValue(60000)).setQuery(qb0) // .addSort(sortBuilder) // sort has no effect on scroll type (see: https://github.com/CPAN-API/cpan-api/issues/172) .setSize(1000) //1000 hits per shard will be returned for each scroll .execute().actionGet(); //Scroll until no hits are returned System.err.println("[Scroller] query: " + qb0.toString()); System.err.println("[Scroller] took: " + scrollResp.getTookInMillis() + "ms"); System.err.println("[Scroller] docs found: " + total); long counter = 0; long start = System.currentTimeMillis(); while (true) { scrollResp = client.prepareSearchScroll(scrollResp.getScrollId()).setScroll(new TimeValue(600000)) .execute().actionGet(); if (scrollResp.getHits().hits().length == 0) { break; } for (SearchHit hit : scrollResp.getHits()) { System.out.println(hit.sourceAsString()); counter += 1; if (counter % noticeEvery == 0) { final double elapsed = (System.currentTimeMillis() - start) / 1000; final double speed = counter / elapsed; final long eta = (long) ((elapsed / counter) * (total - counter) * 1000); System.err.println( counter + "/" + total + " records recvd @ speed " + String.format("%1$,.1f", speed) + " r/s eta: " + DurationFormatUtils.formatDurationWords(eta, false, false)); } } } System.out.close(); // System.out.println(endOfMessage); }
From source file:com.liferay.tool.datamanipulator.thread.HandlerThread.java
@Override public void run() { HttpSession httpSession = _requestContext.getSession(); httpSession.setMaxInactiveInterval(-1); //PermissionThreadLocal.setIndexEnabled(false); PermissionThreadLocal.setPermissionChecker(_requestContext.getPermissionChecker()); PrincipalThreadLocal.setName(_requestContext.getUserId()); PortalSessionThreadLocal.setHttpSession(httpSession); String threadName = this.getName(); long startTime = System.currentTimeMillis(); StringBuilder startSB = new StringBuilder(5); startSB.append(threadName);/*from www .j a v a 2 s. c o m*/ startSB.append(": Started generating '"); startSB.append(HandlerUtil.getHandlerDisplayName(_handler.getClass())); startSB.append("' entries at "); startSB.append(new java.util.Date(startTime)); _log.info(startSB.toString()); try { _handler.proceed(_requestContext); } catch (Exception e) { _log.error(e, e); } long endTime = System.currentTimeMillis(); StringBuilder finishSB = new StringBuilder(5); finishSB.append(threadName); finishSB.append(": Finished generating '"); finishSB.append(HandlerUtil.getHandlerDisplayName(_handler.getClass())); finishSB.append("' entries at "); finishSB.append(new java.util.Date(endTime)); _log.info(finishSB.toString()); StringBuilder tookSB = new StringBuilder(4); tookSB.append(threadName); tookSB.append(": The generation process took "); tookSB.append(DurationFormatUtils.formatDurationWords(endTime - startTime, true, true)); _log.info(tookSB.toString()); }
From source file:com.spotify.reaper.resources.view.RepairRunStatus.java
public RepairRunStatus(long runId, String clusterName, String keyspaceName, Collection<String> columnFamilies, int segmentsRepaired, int totalSegments, RepairRun.RunState state, DateTime startTime, DateTime endTime, String cause, String owner, String lastEvent, DateTime creationTime, DateTime pauseTime, double intensity, RepairParallelism repairParallelism) { this.id = runId; this.cause = cause; this.owner = owner; this.clusterName = clusterName; this.columnFamilies = columnFamilies; this.keyspaceName = keyspaceName; this.state = state; this.creationTime = creationTime; this.startTime = startTime; this.endTime = endTime; this.pauseTime = pauseTime; this.intensity = CommonTools.roundDoubleNicely(intensity); this.totalSegments = totalSegments; this.repairParallelism = repairParallelism; this.segmentsRepaired = segmentsRepaired; this.lastEvent = lastEvent; if (startTime == null || endTime == null) { duration = null;//from w w w . j a v a2s . c om } else { duration = DurationFormatUtils.formatDurationWords( new Duration(startTime.toInstant(), endTime.toInstant()).getMillis(), true, false); } if (startTime == null || endTime != null) { estimatedTimeOfArrival = null; } else { if (state == RepairRun.RunState.ERROR || state == RepairRun.RunState.DELETED || state == RepairRun.RunState.ABORTED) { estimatedTimeOfArrival = null; } else if (segmentsRepaired == 0) { estimatedTimeOfArrival = null; } else { long now = DateTime.now().getMillis(); long currentDuration = now - startTime.getMillis(); long millisecondsPerSegment = currentDuration / segmentsRepaired; int segmentsLeft = totalSegments - segmentsRepaired; estimatedTimeOfArrival = new DateTime(now + millisecondsPerSegment * segmentsLeft); } } }
From source file:com.evolveum.midpoint.web.page.admin.certification.dto.CertCampaignListItemDto.java
private String computeDeadlineAsString(PageBase page) { AccessCertificationStageType currentStage = CertCampaignTypeUtil.getCurrentStage(campaign); XMLGregorianCalendar end;//from w w w. j a v a 2 s. com Boolean stageLevelInfo; if (campaign.getStageNumber() == 0) { end = campaign.getEnd(); stageLevelInfo = false; } else if (currentStage != null) { end = currentStage.getEnd(); stageLevelInfo = true; } else { end = null; stageLevelInfo = null; } if (end == null) { return ""; } else { long delta = XmlTypeConverter.toMillis(end) - System.currentTimeMillis(); // round to hours; we always round down long precision = 3600000L; // 1 hour if (Math.abs(delta) > precision) { delta = (delta / precision) * precision; } //todo i18n for durations if (delta > 0) { String key = stageLevelInfo ? "PageCertCampaigns.inForStage" : "PageCertCampaigns.inForCampaign"; return new StringResourceModel(key, page, null, null, DurationFormatUtils.formatDurationWords(delta, true, true)).getString(); } else if (delta < 0) { String key = stageLevelInfo ? "PageCertCampaigns.agoForStage" : "PageCertCampaigns.agoForCampaign"; return new StringResourceModel(key, page, null, null, DurationFormatUtils.formatDurationWords(-delta, true, true)).getString(); } else { String key = stageLevelInfo ? "PageCertCampaigns.nowForStage" : "PageCertCampaigns.nowForCampaign"; return page.getString(key); } } }
From source file:com.feedzai.commons.sql.abstraction.batch.AbstractBatch.java
/** * Destroys this batch./*from w w w . jav a2 s . com*/ */ public synchronized void destroy() { logger.trace("{} - Destroy called on Batch", name); scheduler.shutdownNow(); try { if (!scheduler.awaitTermination(maxAwaitTimeShutdown, TimeUnit.MILLISECONDS)) { logger.warn("Could not terminate batch within {}", DurationFormatUtils.formatDurationWords(maxAwaitTimeShutdown, true, true)); } } catch (InterruptedException e) { Thread.currentThread().interrupt(); logger.debug("Interrupted while waiting.", e); } flush(); }
From source file:com.evolveum.midpoint.notifications.impl.notifiers.SimpleCampaignStageNotifier.java
@Override protected String getBody(Event event, GeneralNotifierType generalNotifierType, String transport, Task task, OperationResult result) {//from w w w .j av a 2 s . c om StringBuilder body = new StringBuilder(); CertCampaignStageEvent csEvent = (CertCampaignStageEvent) event; AccessCertificationCampaignType campaign = csEvent.getCampaign(); body.append("A certification campaign stage "); if (csEvent.isAdd()) { body.append("has been started"); } else if (csEvent.isDelete()) { body.append("has been closed"); } else if (csEvent.isModify()) { body.append("is about to be closed"); } body.append("."); body.append("\n\nCampaign: "); body.append(certHelper.getCampaignNameAndOid(csEvent)); body.append("\nState: "); body.append(certHelper.formatState(csEvent)); body.append("\n\nTime: ").append(new Date()); // the event is generated in the real time AccessCertificationStageType stage = CertCampaignTypeUtil.getCurrentStage(campaign); if (stage != null) { body.append("\n\nStage start time: ").append(XmlTypeConverter.toDate(stage.getStart())); body.append("\nStage end time: ").append(XmlTypeConverter.toDate(stage.getEnd())); if (csEvent.isModify() && stage.getEnd() != null) { long delta = XmlTypeConverter.toMillis(stage.getEnd()) - System.currentTimeMillis(); if (delta > 0) { body.append("\n\nStage ends in "); body.append(DurationFormatUtils.formatDurationWords(delta, true, true)); } else if (delta < 0) { body.append("\n\nStage ended "); body.append(DurationFormatUtils.formatDurationWords(-delta, true, true)); body.append(" ago"); } } } body.append("\n"); if (csEvent.isAdd() || csEvent.isDelete()) { body.append("\nRequester: ").append(formatRequester(event, result)); body.append("\nOperation status: ").append(certHelper.formatStatus(csEvent)); } body.append("\n"); certHelper.appendStatistics(body, campaign, task, result); body.append("\n\n"); notificationsUtil.addRequesterAndChannelInformation(body, event, result); return body.toString(); }
From source file:com.evolveum.midpoint.notifications.impl.notifiers.SimpleReviewerNotifier.java
@Override protected String getBody(Event event, GeneralNotifierType generalNotifierType, String transport, Task task, OperationResult result) {/*from www . j av a2 s .c o m*/ StringBuilder body = new StringBuilder(); CertReviewEvent reviewEvent = (CertReviewEvent) event; AccessCertificationCampaignType campaign = reviewEvent.getCampaign(); body.append("You have been requested to provide a review in a certification campaign."); body.append("\n\nCampaign: ").append(certHelper.getCampaignNameAndOid(reviewEvent)); body.append("\nState: ").append(certHelper.formatState(reviewEvent)); body.append("\n\n"); AccessCertificationStageType stage = CertCampaignTypeUtil.getCurrentStage(campaign); if (stage != null) { body.append("Stage start time: ").append(XmlTypeConverter.toDate(stage.getStart())); body.append("\nStage end time: ").append(XmlTypeConverter.toDate(stage.getEnd())); if (stage.getEnd() != null) { long delta = XmlTypeConverter.toMillis(stage.getEnd()) - System.currentTimeMillis(); if (delta > 0) { if (reviewEvent.isModify()) { body.append("\n\nThis is to notify you that the stage ends in "); } else { body.append("\n\nThe stage ends in "); } body.append(DurationFormatUtils.formatDurationWords(delta, true, true)); } else if (delta < 0) { body.append("\n\nThe stage ended "); body.append(DurationFormatUtils.formatDurationWords(-delta, true, true)); body.append(" ago"); } } body.append("\n\n"); body.append("There are ").append(reviewEvent.getCases().size()).append(" cases assigned to you. "); body.append("Out of them, ").append(reviewEvent.getCasesWithoutResponse().size()) .append(" have no response from you yet."); } return body.toString(); }
From source file:info.raack.appliancedetection.evaluation.model.SimulationGroup.java
public String toString() { return startTime + "; " + getNumSimulations() + " simulations; " + DurationFormatUtils.formatDurationWords((long) durationInSeconds * (long) 1000, true, true) + "; " + numAppliances + " appliances; " + labelsPerOnOff + " labels per appliance; " + onConcurrency + " max appliances on at once"; }
From source file:com.evolveum.midpoint.web.page.admin.workflow.PageProcessInstances.java
private List<IColumn<ProcessInstanceDto, String>> initColumns() { List<IColumn<ProcessInstanceDto, String>> columns = new ArrayList<IColumn<ProcessInstanceDto, String>>(); IColumn column = new CheckBoxHeaderColumn<ProcessInstanceDto>(); columns.add(column);/*from w ww. ja v a2 s.c om*/ column = new LinkColumn<ProcessInstanceDto>(createStringResource("pageProcessInstances.item.name"), "name") { @Override public void onClick(AjaxRequestTarget target, IModel<ProcessInstanceDto> rowModel) { ProcessInstanceDto piDto = rowModel.getObject(); itemDetailsPerformed(target, false, piDto.getProcessInstance().getProcessInstanceId()); } }; columns.add(column); columns.add(new AbstractColumn<ProcessInstanceDto, String>( createStringResource("pageProcessInstances.item.started")) { @Override public void populateItem(Item<ICellPopulator<ProcessInstanceDto>> item, String componentId, final IModel<ProcessInstanceDto> rowModel) { item.add(new Label(componentId, new AbstractReadOnlyModel<Object>() { @Override public Object getObject() { ProcessInstanceDto pi = rowModel.getObject(); Date started = XmlTypeConverter.toDate(pi.getProcessInstance().getStartTimestamp()); if (started == null) { return "?"; } else { // todo i18n return DurationFormatUtils.formatDurationWords( System.currentTimeMillis() - started.getTime(), true, true) + " ago"; } } })); } }); return columns; }