Making snapshot reader sleep between reads to free up CPU for other tasks. Avoids 100% CPU load
Snapshot reader works by creating a new thread every 10ms. Next step is to use one thread that sleeps
Uses single thread to read snapshots form queue and write them to redis. It is a thread and not a process because data from the queue has to be read so frequently that it would cause significant IPC overhead if processes were used. Also, since most of the snapshot consumer's time will be spent doind I/O (writing to redis), threads are not a very bad idea despite the GIL. The thread sleeps periodically to avoid using 100% CPU
Extracts redis settings into separate settings file for easier configurability
Snapshot consumer test waits for consumer thread to complete before it runs assertions in a more elegant way
Encapsulates snapshot writer threaad in class that makes client use easier.