Skip to content

Instantly share code, notes, and snippets.

@johngian
Last active March 26, 2021 15:01
Show Gist options
  • Save johngian/6f0899df3cf7ea9d4a83e015192cb269 to your computer and use it in GitHub Desktop.
Save johngian/6f0899df3cf7ea9d4a83e015192cb269 to your computer and use it in GitHub Desktop.

Project info

Interesting stuff

  • Unit test coverage
  • Integration test coverage
  • Code quality report
  • MyPy static type checking
  • Broad selection of messaging backends

Install poppy-cli

pip install git+https://github.com/johngian/poppy-cli.git
pip install redis # for redis support
poppy --help

Prepare env with redis and kafka running on docker

docker run -d --name kafka-dev --rm -e SAMPLEDATA=0 --net=host lensesio/fast-data-dev
docker run -d --name redis-dev --rm --net=host redis

Run basic poppy-cli commands

poppy --broker-url "redis://127.0.0.1:6379/1" --queue-name "demo" enqueue --message-entry key value
poppy --broker-url "redis://127.0.0.1:6379/1" --queue-name "demo" dequeue
poppy --broker-url "redis://127.0.0.1:6379/1" --queue-name "demo" dequeue --help
poppy --broker-url "redis://127.0.0.1:6379/1" --queue-name "demo" dequeue --blocking-dequeue-timeout 10
poppy --broker-url "redis://127.0.0.1:6379/1" --queue-name "demo" dequeue --blocking-dequeue-timeout 10 --dequeue-raise-on-empty True

Enqueue messages from file/stdin

echo '{"foo": "bar"}' | poppy --broker-url "redis://127.0.0.1:6379/1" --queue-name "demo" enqueue-raw
poppy --broker-url "redis://127.0.0.1:6379/1" --queue-name "demo" enqueue-raw --message-input input.txt

Batched dequeuing of messages

for i in {1..20}; do poppy --broker-url "redis://127.0.0.1:6379/1" --queue-name "demo" enqueue --message-entry key value; done
poppy --broker-url "redis://127.0.0.1:6379" --queue-name "test-poppy" dequeue --batch 19

Different backends

Try the same with kafka://127.0.0.1:9092

Tegola usecase

Example

Enqueue some tiles to be pregenerated:

poppy --broker-url $BROKER_URL --queue-name "tegola" enqueue --message-entry tilename 9/306/208
poppy --broker-url $BROKER_URL --queue-name "tegola" enqueue --message-entry tilename 9/307/208
poppy --broker-url $BROKER_URL --queue-name "tegola" enqueue --message-entry tilename 9/308/208

Dequeue and run tile pregeneration

poppy --broker-url $BROKER_URL --queue-name "tegola" dequeue | jq --unbuffered ."tilename" | xargs -I {} tegola --config $TEGOLA_CONFIG_PATH cache seed {}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment