async_botocore

gevent botocore

Stars
5

async_botocore

Use gevent with botocore to call aws services in a nonblocking fashion.

by using gevent Pool and Pool.spawn() you can wrap execution of botocore in greenthreads.

a few important notes:

  • always monkey.patch_all as first thing in your app (really first, like Main first, top first, just first, first, first :-)
  • let each greenthread have its own connection, this worked for me. So create a function for calling aws services and inside this function; create your connection
  • use pool.join(timeout=n) to check if the queue is empty
  • use pool.full() to check if there is room in the pool for a new job
  • keep running greenthreads in a list to check their results later on