amazon-kinesis-client-python
amazon-kinesis-client-python copied to clipboard
Is calling checkpoint() with no args on shutdown correct behaviour?
In the sample code, when a shutdown is requested we call the checkpoint() method with no args, which means the checkpoint sequence number will be the end of the most recently delivered list of records.
def shutdown_requested(self, shutdown_requested_input):
self.log("Shutdown has been requested, checkpointing.")
shutdown_requested_input.checkpointer.checkpoint()
Is this behaviour correct? What if shutdown is requested while we are halfway through processing a batch of records? This would mean we checkpoint the last record and therefore skip the second half of the batch. Or are we saying that shutdown_requested() can only be called after process_records() has completed, and not during?