public DLQResult getDLQStats()

in src/main/java/com/awsblog/queueing/sdk/QueueSdkClient.java [222:268]


	public DLQResult getDLQStats() {

		long startTime = System.currentTimeMillis();

		int totalDLQSize = 0;

		Map<String,AttributeValue> exclusiveStartKey = null;

		Map<String,String> names = new HashMap<>();
		names.put("#DLQ", "DLQ");

		Map<String,AttributeValue> values = new HashMap<>();
		values.put(":one", new AttributeValue().withN("1"));

		List<String> listBANs = new ArrayList<>();

		do {

			QueryRequest queryRequest = new QueryRequest()
					.withProjectionExpression("id, DLQ, system_info")
					.withIndexName(Constants.DLQ_QUEUEING_INDEX_NAME)
					.withTableName(this.actualTableName)
					.withExpressionAttributeNames(names)
					.withKeyConditionExpression("#DLQ = :one")
					.withLimit(250)
					.withExpressionAttributeValues(values);

			queryRequest.withExclusiveStartKey(exclusiveStartKey);

			QueryResult queryResult = this.dynamoDB.query(queryRequest);
			exclusiveStartKey = queryResult.getLastEvaluatedKey();

			for(Map<String,AttributeValue> itemMap : queryResult.getItems()) {

				++totalDLQSize;

				if (listBANs.size() < 100) listBANs.add(itemMap.get("id").getS());
			}

		} while (exclusiveStartKey != null);

		DLQResult result = new DLQResult();
		result.setFirst100IDsInQueue(listBANs);
		result.setTotalRecordsInQueue(totalDLQSize);

		return result;
	}