Search in sources :

Example 1 with MILLIS

use of java.time.temporal.ChronoUnit.MILLIS in project neonbee by SAP.

the class JobVerticle method scheduleJob.

/**
 * Schedule the next job execution.
 */
private void scheduleJob() {
    boolean periodicSchedule = schedule.isPeriodic();
    Instant now = now();
    Instant scheduledStart = schedule.getStart();
    Instant scheduledEnd = schedule.getEnd();
    // before even scheduling, check if the scheduled start / end lies in the past
    if ((scheduledStart != null && !periodicSchedule && scheduledStart.isBefore(now)) || (scheduledEnd != null && scheduledEnd.isBefore(now))) {
        finalizeJob();
        return;
    }
    // the next schedule is based either on the last schedule (if this is a periodic job) or the scheduled start. In
    // case there was no scheduled start defined, start the job now
    Instant nextExecution = lastExecution != null ? lastExecution : (scheduledStart != null ? scheduledStart : now);
    // until it is in the future using the schedule provided
    while (nextExecution.isBefore(now)) {
        nextExecution = periodicSchedule ? nextExecution.with(schedule) : now;
    }
    // next job execution
    if (scheduledEnd != null && nextExecution.isAfter(scheduledEnd)) {
        finalizeJob();
        return;
    }
    // schedule the job for the delay defined and remember the last execution time use a minimum delay to not run
    // jobs in a immediate succession
    long nextDelay = max(MINIMUM_DELAY, now.until(lastExecution = nextExecution, MILLIS));
    if (LOGGER.isInfoEnabled()) {
        LOGGER.info("Scheduling job execution of {} in {}ms ({})", getName(), nextDelay, ISO_LOCAL_DATE_TIME.format(ZonedDateTime.now(UTC).plus(nextDelay, MILLIS)));
    }
    currentTimerId = getVertx().setTimer(nextDelay, timerID -> {
        // initialize the a data context for the job execution
        DataContext context = new DataContextImpl(UUID.randomUUID().toString(), "internal-" + UUID.randomUUID().toString(), getUser());
        // execute the job and wait for the execution to finish, before starting the next execution
        LOGGER.correlateWith(context).info("Job execution of {} started", getClass().getSimpleName());
        Optional.ofNullable(execute(context)).orElse(succeededFuture()).onComplete(result -> {
            // handle the result by logging
            if (result.succeeded()) {
                LOGGER.correlateWith(context).info("Job execution of {} ended successfully", getName());
            } else {
                LOGGER.correlateWith(context).warn("Job execution of {} ended with failure", getName(), result.cause());
            }
            // if it is a periodic schedule, schedule the next job run, otherwise finalize and end the execution
            if (periodicSchedule) {
                scheduleJob();
            } else {
                finalizeJob();
            }
        });
    });
}
Also used : Future.succeededFuture(io.vertx.core.Future.succeededFuture) LoggingFacade(io.neonbee.logging.LoggingFacade) Instant.now(java.time.Instant.now) ZonedDateTime(java.time.ZonedDateTime) NeonBee(io.neonbee.NeonBee) DataContext(io.neonbee.data.DataContext) UUID(java.util.UUID) Instant(java.time.Instant) Future(io.vertx.core.Future) ISO_LOCAL_DATE_TIME(java.time.format.DateTimeFormatter.ISO_LOCAL_DATE_TIME) DataContextImpl(io.neonbee.data.internal.DataContextImpl) AbstractVerticle(io.vertx.core.AbstractVerticle) UTC(java.time.ZoneOffset.UTC) Math.max(java.lang.Math.max) Optional(java.util.Optional) JsonObject(io.vertx.core.json.JsonObject) MILLIS(java.time.temporal.ChronoUnit.MILLIS) VisibleForTesting(com.google.common.annotations.VisibleForTesting) DataContext(io.neonbee.data.DataContext) DataContextImpl(io.neonbee.data.internal.DataContextImpl) Instant(java.time.Instant)

Example 2 with MILLIS

use of java.time.temporal.ChronoUnit.MILLIS in project phoebus-olog by Olog.

the class TimeParser method parseTemporalAmount.

/**
 * Parse a temporal amount like "1 month 2 days" or "1 day 20 seconds"
 *
 *  <p>Provides either a time-based {@link Duration}
 *  or a calendar based {@link Period}.
 *
 *  <p>A period of "1 months" does not have a well defined
 *  length in time because a months could have 28 to 31 days.
 *  When the user specifies "1 month" we assume that
 *  a time span between the same day in different months
 *  is requested.
 *  As soon as the time span includes a month or year,
 *  a {@link Period} is returned and the smaller units
 *  from hours down are ignored.
 *
 *  <p>For time spans that only include days or less,
 *  a {@link Duration} is used.
 *
 *  @param string Text
 *  @return {@link Duration} or {@link Period}
 */
public static TemporalAmount parseTemporalAmount(final String string) {
    if (NOW.equalsIgnoreCase(string))
        return Duration.ZERO;
    final Matcher timeQuantityUnitsMatcher = timeQuantityUnitsPattern.matcher(string);
    final Map<ChronoUnit, Integer> timeQuantities = new HashMap<>();
    boolean use_period = false;
    while (timeQuantityUnitsMatcher.find()) {
        final double quantity = "".equals(timeQuantityUnitsMatcher.group(1)) ? 1.0 : Double.valueOf(timeQuantityUnitsMatcher.group(1));
        final int full = (int) quantity;
        final double fraction = quantity - full;
        final String unit = timeQuantityUnitsMatcher.group(2).toLowerCase();
        // -> We place fractional amounts in the next finer unit.
        if (unit.startsWith("y")) {
            timeQuantities.put(YEARS, full);
            if (fraction > 0) {
                final int next = (int) (fraction * 12 + 0.5);
                timeQuantities.compute(MONTHS, (u, prev) -> prev == null ? next : prev + next);
            }
            use_period = true;
        } else if (unit.startsWith("mo")) {
            timeQuantities.compute(MONTHS, (u, prev) -> prev == null ? full : prev + full);
            if (fraction > 0) {
                final int next = (int) (fraction * 4 * 7 + 0.5);
                timeQuantities.compute(DAYS, (u, prev) -> prev == null ? next : prev + next);
            }
            use_period = true;
        } else if (unit.startsWith("w")) {
            timeQuantities.compute(WEEKS, (u, prev) -> prev == null ? full : prev + full);
            if (fraction > 0) {
                final int next = (int) (fraction * 7 + 0.5);
                timeQuantities.compute(DAYS, (u, prev) -> prev == null ? next : prev + next);
            }
            use_period = true;
        } else if (unit.startsWith("mi")) {
            timeQuantities.compute(MINUTES, (u, prev) -> prev == null ? full : prev + full);
            if (fraction > 0) {
                final int next = (int) (fraction * 60 + 0.5);
                timeQuantities.compute(SECONDS, (u, prev) -> prev == null ? next : prev + next);
            }
        } else if (unit.startsWith("h")) {
            timeQuantities.compute(HOURS, (u, prev) -> prev == null ? full : prev + full);
            if (fraction > 0) {
                final int next = (int) (fraction * 60 + 0.5);
                timeQuantities.compute(MINUTES, (u, prev) -> prev == null ? next : prev + next);
            }
        } else if (unit.startsWith("d")) {
            timeQuantities.compute(DAYS, (u, prev) -> prev == null ? full : prev + full);
            if (fraction > 0) {
                final int next = (int) (fraction * 24 + 0.5);
                timeQuantities.compute(HOURS, (u, prev) -> prev == null ? next : prev + next);
            }
        } else if (unit.startsWith("s")) {
            timeQuantities.compute(SECONDS, (u, prev) -> prev == null ? full : prev + full);
            if (fraction > 0) {
                final int next = (int) (fraction * 1000 + 0.5);
                timeQuantities.compute(MILLIS, (u, prev) -> prev == null ? next : prev + next);
            }
        } else if (unit.equals("ms")) {
            timeQuantities.compute(MILLIS, (u, prev) -> prev == null ? full : prev + full);
            if (fraction > 0) {
                final int next = (int) (fraction * 1000 + 0.5);
                timeQuantities.compute(MICROS, (u, prev) -> prev == null ? next : prev + next);
            }
        }
    }
    if (use_period) {
        Period result = Period.ZERO;
        if (timeQuantities.containsKey(YEARS))
            result = result.plusYears(timeQuantities.get(YEARS));
        if (timeQuantities.containsKey(WEEKS))
            result = result.plusDays(7 * timeQuantities.get(WEEKS));
        if (timeQuantities.containsKey(MONTHS))
            result = result.plusMonths(timeQuantities.get(MONTHS));
        if (timeQuantities.containsKey(DAYS))
            result = result.plusDays(timeQuantities.get(DAYS));
        // Ignoring hours, min, .. because they're insignificant compared to weeks
        return result;
    } else {
        Duration result = Duration.ofSeconds(0);
        for (Entry<ChronoUnit, Integer> entry : timeQuantities.entrySet()) result = result.plus(entry.getValue(), entry.getKey());
        return result;
    }
}
Also used : Period(java.time.Period) MONTHS(java.time.temporal.ChronoUnit.MONTHS) SECONDS(java.time.temporal.ChronoUnit.SECONDS) YEARS(java.time.temporal.ChronoUnit.YEARS) HOURS(java.time.temporal.ChronoUnit.HOURS) WEEKS(java.time.temporal.ChronoUnit.WEEKS) HashMap(java.util.HashMap) Instant(java.time.Instant) DAYS(java.time.temporal.ChronoUnit.DAYS) ChronoUnit(java.time.temporal.ChronoUnit) Matcher(java.util.regex.Matcher) MINUTES(java.time.temporal.ChronoUnit.MINUTES) MICROS(java.time.temporal.ChronoUnit.MICROS) Duration(java.time.Duration) Map(java.util.Map) Entry(java.util.Map.Entry) TemporalAmount(java.time.temporal.TemporalAmount) Pattern(java.util.regex.Pattern) MILLIS(java.time.temporal.ChronoUnit.MILLIS) Matcher(java.util.regex.Matcher) HashMap(java.util.HashMap) Period(java.time.Period) Duration(java.time.Duration) ChronoUnit(java.time.temporal.ChronoUnit)

Example 3 with MILLIS

use of java.time.temporal.ChronoUnit.MILLIS in project pay-connector by alphagov.

the class ChargesApiResourceCreateIT method shouldEmitPaymentCreatedEventWhenChargeIsSuccessfullyCreated.

/*
    This test breaks when the device running the test is on BST (UTC+1). This is because JDBI assumes
    the time stored in the database (UTC) is in local time (BST) and incorrectly tries to "correct" it to UTC
    by moving it back an hour which results in the assertion failing as it is now 1 hour apart.
     */
@Test
public void shouldEmitPaymentCreatedEventWhenChargeIsSuccessfullyCreated() throws Exception {
    String postBody = toJson(Map.of(JSON_AMOUNT_KEY, AMOUNT, JSON_REFERENCE_KEY, JSON_REFERENCE_VALUE, JSON_DESCRIPTION_KEY, JSON_DESCRIPTION_VALUE, JSON_RETURN_URL_KEY, RETURN_URL));
    final ValidatableResponse response = connectorRestApiClient.postCreateCharge(postBody).statusCode(201);
    String chargeExternalId = response.extract().path(JSON_CHARGE_KEY);
    final Map<String, Object> persistedCharge = databaseTestHelper.getChargeByExternalId(chargeExternalId);
    final ZonedDateTime persistedCreatedDate = ZonedDateTime.ofInstant(((Timestamp) persistedCharge.get("created_date")).toInstant(), ZoneOffset.UTC);
    Thread.sleep(100);
    List<Message> messages = readMessagesFromEventQueue();
    final Message message = messages.get(0);
    ZonedDateTime eventTimestamp = ZonedDateTime.parse(new JsonParser().parse(message.getBody()).getAsJsonObject().get("timestamp").getAsString());
    Optional<JsonObject> createdMessage = messages.stream().map(m -> new JsonParser().parse(m.getBody()).getAsJsonObject()).filter(e -> e.get("event_type").getAsString().equals("PAYMENT_CREATED")).findFirst();
    assertThat(createdMessage.isPresent(), is(true));
    assertThat(eventTimestamp, is(within(200, MILLIS, persistedCreatedDate)));
}
Also used : JsonObject(com.google.gson.JsonObject) ZonedDateTimeMatchers.within(org.exparity.hamcrest.date.ZonedDateTimeMatchers.within) ValidatableResponse(io.restassured.response.ValidatableResponse) ZonedDateTime(java.time.ZonedDateTime) Matchers.not(org.hamcrest.Matchers.not) CREATED(uk.gov.pay.connector.charge.model.domain.ChargeStatus.CREATED) ErrorIdentifier(uk.gov.service.payments.commons.model.ErrorIdentifier) ReceiveMessageResult(com.amazonaws.services.sqs.model.ReceiveMessageResult) Matchers.hasKey(org.hamcrest.Matchers.hasKey) AddGatewayAccountCredentialsParamsBuilder.anAddGatewayAccountCredentialsParams(uk.gov.pay.connector.util.AddGatewayAccountCredentialsParams.AddGatewayAccountCredentialsParamsBuilder.anAddGatewayAccountCredentialsParams) RandomUtils(org.apache.commons.lang.math.RandomUtils) Map(java.util.Map) Matchers.nullValue(org.hamcrest.Matchers.nullValue) Is.is(org.hamcrest.core.Is.is) ChargingITestBase(uk.gov.pay.connector.it.base.ChargingITestBase) ZoneOffset(java.time.ZoneOffset) NumberMatcher.isNumber(uk.gov.pay.connector.util.NumberMatcher.isNumber) PurgeQueueRequest(com.amazonaws.services.sqs.model.PurgeQueueRequest) DropwizardJUnitRunner(uk.gov.pay.connector.junit.DropwizardJUnitRunner) AddGatewayAccountCredentialsParams(uk.gov.pay.connector.util.AddGatewayAccountCredentialsParams) JSON(io.restassured.http.ContentType.JSON) ConfigOverride(uk.gov.pay.connector.junit.ConfigOverride) AddGatewayAccountParams(uk.gov.pay.connector.util.AddGatewayAccountParams) OK(javax.ws.rs.core.Response.Status.OK) Matchers.notNullValue(org.hamcrest.Matchers.notNullValue) Timestamp(java.sql.Timestamp) NOT_FOUND(javax.ws.rs.core.Response.Status.NOT_FOUND) ExternalMetadata(uk.gov.service.payments.commons.model.charge.ExternalMetadata) Collectors.joining(java.util.stream.Collectors.joining) JsonEncoder.toJsonWithNulls(uk.gov.pay.connector.util.JsonEncoder.toJsonWithNulls) List(java.util.List) RandomStringUtils.randomAlphanumeric(org.apache.commons.lang3.RandomStringUtils.randomAlphanumeric) Matchers.contains(org.hamcrest.Matchers.contains) Matchers.containsInAnyOrder(org.hamcrest.Matchers.containsInAnyOrder) ResponseContainsLinkMatcher.containsLink(uk.gov.pay.connector.matcher.ResponseContainsLinkMatcher.containsLink) AmazonSQS(com.amazonaws.services.sqs.AmazonSQS) DropwizardConfig(uk.gov.pay.connector.junit.DropwizardConfig) Optional(java.util.Optional) AddGatewayAccountParamsBuilder.anAddGatewayAccountParams(uk.gov.pay.connector.util.AddGatewayAccountParams.AddGatewayAccountParamsBuilder.anAddGatewayAccountParams) RandomStringUtils.randomAlphabetic(org.apache.commons.lang3.RandomStringUtils.randomAlphabetic) IntStream(java.util.stream.IntStream) ExternalMetadataConverter(uk.gov.pay.connector.charge.util.ExternalMetadataConverter) CoreMatchers.equalTo(org.hamcrest.CoreMatchers.equalTo) RunWith(org.junit.runner.RunWith) HashMap(java.util.HashMap) JsonParser(com.google.gson.JsonParser) PGobject(org.postgresql.util.PGobject) JsonEncoder.toJson(uk.gov.pay.connector.util.JsonEncoder.toJson) Matchers.hasSize(org.hamcrest.Matchers.hasSize) MILLIS(java.time.temporal.ChronoUnit.MILLIS) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) ReceiveMessageRequest(com.amazonaws.services.sqs.model.ReceiveMessageRequest) CARD_API(uk.gov.service.payments.commons.model.Source.CARD_API) Status(javax.ws.rs.core.Response.Status) Before(org.junit.Before) SECONDS(java.time.temporal.ChronoUnit.SECONDS) Test(org.junit.Test) MatchesPattern.matchesPattern(org.hamcrest.text.MatchesPattern.matchesPattern) Message(com.amazonaws.services.sqs.model.Message) GatewayAccountCredentialState(uk.gov.pay.connector.gatewayaccountcredentials.model.GatewayAccountCredentialState) ZoneDateTimeAsStringWithinMatcher.isWithin(uk.gov.pay.connector.matcher.ZoneDateTimeAsStringWithinMatcher.isWithin) ConnectorApp(uk.gov.pay.connector.app.ConnectorApp) Assert.assertNull(org.junit.Assert.assertNull) ValidatableResponse(io.restassured.response.ValidatableResponse) Message(com.amazonaws.services.sqs.model.Message) ZonedDateTime(java.time.ZonedDateTime) JsonObject(com.google.gson.JsonObject) JsonObject(com.google.gson.JsonObject) JsonParser(com.google.gson.JsonParser) Test(org.junit.Test)

Example 4 with MILLIS

use of java.time.temporal.ChronoUnit.MILLIS in project phoebus by ControlSystemStudio.

the class TimeParser method parseTemporalAmount.

/**
 * Parse a temporal amount like "1 month 2 days" or "1 day 20 seconds"
 *
 *  <p>Provides either a time-based {@link Duration}
 *  or a calendar based {@link Period}.
 *
 *  <p>A period of "1 months" does not have a well defined
 *  length in time because a months could have 28 to 31 days.
 *  When the user specifies "1 month" we assume that
 *  a time span between the same day in different months
 *  is requested.
 *  As soon as the time span includes a month or year,
 *  a {@link Period} is returned and the smaller units
 *  from hours down are ignored.
 *
 *  <p>For time spans that only include days or less,
 *  a {@link Duration} is used.
 *
 *  @param string Text
 *  @return {@link Duration} or {@link Period}
 */
public static TemporalAmount parseTemporalAmount(final String string) {
    if (NOW.equalsIgnoreCase(string))
        return Duration.ZERO;
    final Matcher timeQuantityUnitsMatcher = timeQuantityUnitsPattern.matcher(string);
    final Map<ChronoUnit, Integer> timeQuantities = new HashMap<>();
    boolean use_period = false;
    while (timeQuantityUnitsMatcher.find()) {
        final double quantity = "".equals(timeQuantityUnitsMatcher.group(1)) ? 1.0 : Double.valueOf(timeQuantityUnitsMatcher.group(1));
        final int full = (int) quantity;
        final double fraction = quantity - full;
        final String unit = timeQuantityUnitsMatcher.group(2).toLowerCase();
        // -> We place fractional amounts in the next finer unit.
        if (unit.startsWith("y")) {
            timeQuantities.put(YEARS, full);
            if (fraction > 0) {
                final int next = (int) (fraction * 12 + 0.5);
                timeQuantities.compute(MONTHS, (u, prev) -> prev == null ? next : prev + next);
            }
            use_period = true;
        } else if (unit.startsWith("mo")) {
            timeQuantities.compute(MONTHS, (u, prev) -> prev == null ? full : prev + full);
            if (fraction > 0) {
                final int next = (int) (fraction * 4 * 7 + 0.5);
                timeQuantities.compute(DAYS, (u, prev) -> prev == null ? next : prev + next);
            }
            use_period = true;
        } else if (unit.startsWith("w")) {
            timeQuantities.compute(WEEKS, (u, prev) -> prev == null ? full : prev + full);
            if (fraction > 0) {
                final int next = (int) (fraction * 7 + 0.5);
                timeQuantities.compute(DAYS, (u, prev) -> prev == null ? next : prev + next);
            }
            use_period = true;
        } else if (unit.startsWith("mi")) {
            timeQuantities.compute(MINUTES, (u, prev) -> prev == null ? full : prev + full);
            if (fraction > 0) {
                final int next = (int) (fraction * 60 + 0.5);
                timeQuantities.compute(SECONDS, (u, prev) -> prev == null ? next : prev + next);
            }
        } else if (unit.startsWith("h")) {
            timeQuantities.compute(HOURS, (u, prev) -> prev == null ? full : prev + full);
            if (fraction > 0) {
                final int next = (int) (fraction * 60 + 0.5);
                timeQuantities.compute(MINUTES, (u, prev) -> prev == null ? next : prev + next);
            }
        } else if (unit.startsWith("d")) {
            timeQuantities.compute(DAYS, (u, prev) -> prev == null ? full : prev + full);
            if (fraction > 0) {
                final int next = (int) (fraction * 24 + 0.5);
                timeQuantities.compute(HOURS, (u, prev) -> prev == null ? next : prev + next);
            }
        } else if (unit.startsWith("s")) {
            timeQuantities.compute(SECONDS, (u, prev) -> prev == null ? full : prev + full);
            if (fraction > 0) {
                final int next = (int) (fraction * 1000 + 0.5);
                timeQuantities.compute(MILLIS, (u, prev) -> prev == null ? next : prev + next);
            }
        } else if (unit.equals("ms")) {
            timeQuantities.compute(MILLIS, (u, prev) -> prev == null ? full : prev + full);
            if (fraction > 0) {
                final int next = (int) (fraction * 1000 + 0.5);
                timeQuantities.compute(MICROS, (u, prev) -> prev == null ? next : prev + next);
            }
        }
    }
    if (use_period) {
        Period result = Period.ZERO;
        if (timeQuantities.containsKey(YEARS))
            result = result.plusYears(timeQuantities.get(YEARS));
        if (timeQuantities.containsKey(WEEKS))
            result = result.plusDays(7 * timeQuantities.get(WEEKS));
        if (timeQuantities.containsKey(MONTHS))
            result = result.plusMonths(timeQuantities.get(MONTHS));
        if (timeQuantities.containsKey(DAYS))
            result = result.plusDays(timeQuantities.get(DAYS));
        // Ignoring hours, min, .. because they're insignificant compared to weeks
        return result;
    } else {
        Duration result = Duration.ofSeconds(0);
        for (Entry<ChronoUnit, Integer> entry : timeQuantities.entrySet()) result = result.plus(entry.getValue(), entry.getKey());
        return result;
    }
}
Also used : Period(java.time.Period) MONTHS(java.time.temporal.ChronoUnit.MONTHS) SECONDS(java.time.temporal.ChronoUnit.SECONDS) YEARS(java.time.temporal.ChronoUnit.YEARS) HOURS(java.time.temporal.ChronoUnit.HOURS) TimeZone(java.util.TimeZone) WEEKS(java.time.temporal.ChronoUnit.WEEKS) LocalDateTime(java.time.LocalDateTime) HashMap(java.util.HashMap) Instant(java.time.Instant) DAYS(java.time.temporal.ChronoUnit.DAYS) ChronoUnit(java.time.temporal.ChronoUnit) Matcher(java.util.regex.Matcher) MINUTES(java.time.temporal.ChronoUnit.MINUTES) MICROS(java.time.temporal.ChronoUnit.MICROS) Duration(java.time.Duration) DateTimeFormatter(java.time.format.DateTimeFormatter) Map(java.util.Map) Entry(java.util.Map.Entry) TemporalAmount(java.time.temporal.TemporalAmount) Pattern(java.util.regex.Pattern) MILLIS(java.time.temporal.ChronoUnit.MILLIS) Matcher(java.util.regex.Matcher) HashMap(java.util.HashMap) Period(java.time.Period) Duration(java.time.Duration) ChronoUnit(java.time.temporal.ChronoUnit)

Aggregations

MILLIS (java.time.temporal.ChronoUnit.MILLIS)4 Instant (java.time.Instant)3 SECONDS (java.time.temporal.ChronoUnit.SECONDS)3 HashMap (java.util.HashMap)3 Map (java.util.Map)3 Duration (java.time.Duration)2 Period (java.time.Period)2 ZonedDateTime (java.time.ZonedDateTime)2 ChronoUnit (java.time.temporal.ChronoUnit)2 DAYS (java.time.temporal.ChronoUnit.DAYS)2 HOURS (java.time.temporal.ChronoUnit.HOURS)2 MICROS (java.time.temporal.ChronoUnit.MICROS)2 MINUTES (java.time.temporal.ChronoUnit.MINUTES)2 MONTHS (java.time.temporal.ChronoUnit.MONTHS)2 WEEKS (java.time.temporal.ChronoUnit.WEEKS)2 Optional (java.util.Optional)2 AmazonSQS (com.amazonaws.services.sqs.AmazonSQS)1 Message (com.amazonaws.services.sqs.model.Message)1 PurgeQueueRequest (com.amazonaws.services.sqs.model.PurgeQueueRequest)1 ReceiveMessageRequest (com.amazonaws.services.sqs.model.ReceiveMessageRequest)1