Class EventingS3ObjectKeyLoader
- java.lang.Object
-
- com.netflix.spinnaker.front50.model.EventingS3ObjectKeyLoader
-
- All Implemented Interfaces:
com.netflix.spinnaker.front50.model.ObjectKeyLoader,java.lang.Runnable
public class EventingS3ObjectKeyLoader extends java.lang.Object implements com.netflix.spinnaker.front50.model.ObjectKeyLoader, java.lang.RunnableAn ObjectKeyLoader is responsible for returning a last modified timestamp for all objects of a particular type.This implementation listens to an S3 event stream and applies incremental updates whenever an event is received indicating that an object has been modified (add/update/delete).
It is significantly faster than delegating to `s3StorageService.listObjectKeys()` with some slight latency attributed to the time taken for an event to be received and processed.
Expected latency is less than 1s (Amazon
-
-
Constructor Summary
Constructors Constructor Description EventingS3ObjectKeyLoader(java.util.concurrent.ExecutorService executionService, com.fasterxml.jackson.databind.ObjectMapper objectMapper, S3MetadataStorageProperties s3Properties, TemporarySQSQueue temporarySQSQueue, com.netflix.spinnaker.front50.model.StorageService storageService, com.netflix.spectator.api.Registry registry, boolean scheduleImmediately)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Map<java.lang.String,java.lang.Long>listObjectKeys(com.netflix.spinnaker.front50.model.ObjectType objectType)voidrun()voidshutdown()
-
-
-
Constructor Detail
-
EventingS3ObjectKeyLoader
public EventingS3ObjectKeyLoader(java.util.concurrent.ExecutorService executionService, com.fasterxml.jackson.databind.ObjectMapper objectMapper, S3MetadataStorageProperties s3Properties, TemporarySQSQueue temporarySQSQueue, com.netflix.spinnaker.front50.model.StorageService storageService, com.netflix.spectator.api.Registry registry, boolean scheduleImmediately)
-
-
Method Detail
-
shutdown
@PreDestroy public void shutdown()
- Specified by:
shutdownin interfacecom.netflix.spinnaker.front50.model.ObjectKeyLoader
-
listObjectKeys
public java.util.Map<java.lang.String,java.lang.Long> listObjectKeys(com.netflix.spinnaker.front50.model.ObjectType objectType)
- Specified by:
listObjectKeysin interfacecom.netflix.spinnaker.front50.model.ObjectKeyLoader
-
run
public void run()
- Specified by:
runin interfacejava.lang.Runnable
-
-