/** * <p> * The records associated with the request. * </p> * * @param records * The records associated with the request. * @return Returns a reference to this object so that method calls can be chained together. */ public PutRecordsRequest withRecords(java.util.Collection<PutRecordsRequestEntry> records) { setRecords(records); return this; }
/** * <p> * The records associated with the request. * </p> * <p> * <b>NOTE:</b> This method appends the values to the existing list (if any). Use * {@link #setRecords(java.util.Collection)} or {@link #withRecords(java.util.Collection)} if you want to override * the existing values. * </p> * * @param records * The records associated with the request. * @return Returns a reference to this object so that method calls can be chained together. */ public PutRecordsRequest withRecords(PutRecordsRequestEntry... records) { if (this.records == null) { setRecords(new com.amazonaws.internal.SdkInternalList<PutRecordsRequestEntry>(records.length)); } for (PutRecordsRequestEntry ele : records) { this.records.add(ele); } return this; }
putRecordRequest.setRecords(records); PutRecordsResult results = client.putRecords(putRecordRequest);
/** * <p> * The records associated with the request. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param records <p> * The records associated with the request. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public PutRecordsRequest withRecords(java.util.Collection<PutRecordsRequestEntry> records) { setRecords(records); return this; }
public Optional<PutRecordsRequest> flush() { if (entries.size() > 0) { PutRecordsRequest r = new PutRecordsRequest(); r.setRecords(entries); entries = new ArrayList<>(); requestSize = 0; return Optional.of(r); } else { return Optional.empty(); } } }
@Override public List<byte[]> sendBatch(String streamName, List<byte[]> data) { if (data == null || data.isEmpty()) { return Collections.emptyList(); } final PutRecordsRequest request = new PutRecordsRequest(); request.setStreamName(streamName); final List<PutRecordsRequestEntry> records = new ArrayList<PutRecordsRequestEntry>(data.size()); for (final byte[] d : data) { final String partKey = StringUtils.isBlank(this.partitionKey) ? UUID.randomUUID().toString() : this.partitionKey; final PutRecordsRequestEntry r = new PutRecordsRequestEntry(); r.setData(ByteBuffer.wrap(d)); r.setPartitionKey(partKey); records.add(r); } request.setRecords(records); request.getRequestClientOptions().appendUserAgent(userAgent); final PutRecordsResult result = client.putRecords(request); final int size = result.getRecords().size(); final List<byte[]> failures = new ArrayList<byte[]>(result.getFailedRecordCount()); for (int i = 0; i < size; i++) { if (result.getRecords().get(i).getErrorCode() != null) { // always retry failed record failures.add(data.get(i)); } } return failures; }
/** * <p> * The records associated with the request. * </p> * * @param records * The records associated with the request. * @return Returns a reference to this object so that method calls can be chained together. */ public PutRecordsRequest withRecords(java.util.Collection<PutRecordsRequestEntry> records) { setRecords(records); return this; }
@Test public void test() throws Exception { PutRecordsRequest putRecordsRequest = new PutRecordsRequest(); putRecordsRequest.setStreamName("stream name"); List<PutRecordsRequestEntry> records = new ArrayList<PutRecordsRequestEntry>(); for (int i = 0; i < 10; i++) { PutRecordsRequestEntry record = new PutRecordsRequestEntry(); String randomStr = RandomStringUtils.random(8 * 1024); record.setData(ByteBuffer.wrap(randomStr.getBytes(StringUtils.UTF8))); record.setPartitionKey("partition key"); records.add(record); } putRecordsRequest.setRecords(records); PutRecordsRequestMarshaller marshaller = new PutRecordsRequestMarshaller(); Request<PutRecordsRequest> request = marshaller.marshall(putRecordsRequest); assertEquals("content encoding", "gzip", request.getHeaders().get("Content-Encoding")); byte[] content = IOUtils.toByteArray(request.getContent()); assertEquals("content length", request.getHeaders().get("Content-Length"), String.valueOf(content.length)); GZIPInputStream gis = new GZIPInputStream(new ByteArrayInputStream(content)); String str = IOUtils.toString(gis); assertTrue("content is compressed", content.length < str.length()); Map<String, String> map = JsonUtils.jsonToMap(str); assertEquals("StreamName", "stream name", map.get("StreamName")); } }
private void flushRecords() { try { PutRecordsRequest putRecordsRequest = new PutRecordsRequest(); putRecordsRequest.setStreamName(streamName); putRecordsRequest.setRecords(putRecordsRequestEntryList); client.putRecords(putRecordsRequest); putRecordsRequestEntryList.clear(); logger.debug( "Records flushed." ); } catch (AmazonClientException e) { logger.warn( "PutRecordsRequest exception.", e ); throw new RuntimeException(e); } }
private void flushRecords() { try { PutRecordsRequest putRecordsRequest = new PutRecordsRequest(); putRecordsRequest.setStreamName(streamName); putRecordsRequest.setRecords(putRecordsRequestEntryList); client.putRecords(putRecordsRequest); putRecordsRequestEntryList.clear(); logger.debug( "Records flushed." ); } catch (AmazonClientException e) { logger.warn( "PutRecordsRequest exception.", e ); throw new RuntimeException(e); } } public void setClient(AmazonKinesisClient _client)
/** * <p> * The records associated with the request. * </p> * <p> * <b>NOTE:</b> This method appends the values to the existing list (if any). Use * {@link #setRecords(java.util.Collection)} or {@link #withRecords(java.util.Collection)} if you want to override * the existing values. * </p> * * @param records * The records associated with the request. * @return Returns a reference to this object so that method calls can be chained together. */ public PutRecordsRequest withRecords(PutRecordsRequestEntry... records) { if (this.records == null) { setRecords(new com.amazonaws.internal.SdkInternalList<PutRecordsRequestEntry>(records.length)); } for (PutRecordsRequestEntry ele : records) { this.records.add(ele); } return this; }
putRecordRequest.setRecords(records); PutRecordsResult results = client.putRecords(putRecordRequest);
request.setRecords(requestRecords); PutRecordsResult result = null; Stopwatch timer = Stopwatch.createStarted();
private void generateRecords() { // Create dummy message int recordNo = 1; while (recordNo <= sendCount) { String dataStr = "Record_" + recordNo; PutRecordsRequestEntry putRecordsEntry = new PutRecordsRequestEntry(); putRecordsEntry.setData(ByteBuffer.wrap(dataStr.getBytes())); putRecordsEntry.setPartitionKey(dataStr); putRecordsRequestEntryList.add(putRecordsEntry); if ( (putRecordsRequestEntryList.size() == batchSize) || (recordNo == sendCount )) { PutRecordsRequest putRecordsRequest = new PutRecordsRequest(); putRecordsRequest.setStreamName(streamName); putRecordsRequest.setRecords(putRecordsRequestEntryList); client.putRecords(putRecordsRequest); putRecordsRequestEntryList.clear(); } recordNo++; } }