/pika-pool

pools for your pikas

Primary LanguagePythonOtherNOASSERTION

pika-pool

https://travis-ci.org/bninja/pika-pool.png https://coveralls.io/repos/bninja/pika-pool/badge.png?branch=master

Pika connection pooling inspired by:

Typically you'll go with local shovels, krazee-eyez kombu, etc. but this works too.

usage

Get it:

pip install pika-pool

and use it:

import json

import pika
import pika_pool

params = pika.URLParameters(
   'amqp://guest:guest@localhost:5672/?'
   'socket_timeout=10&'
   'connection_attempts=2'
 )

 pool = pika_pool.QueuedPool(
     create=lambda: pika.BlockingConnection(parameters=params),
     max_size=10,
     max_overflow=10,
     timeout=10,
     recycle=3600,
     stale=45,
 )

 with pool.acquire() as cxn:
     cxn.channel.basic_publish(
         body=json.dumps({
             'type': 'banana',
             'description': 'they are yellow'
         }),
         exchange='',
         routing_key='fruits',
         properties=pika.BasicProperties(
             content_type='application/json',
             content_encoding='utf-8',
             delivery_mode=2,
         )
     )

release

Tests pass:

py.test test.py --cov=pika_pool --cov-report term-missing

so update __version__ in:

  • __init__.py

then commit and tag it:

git commit -am "release v{version}"
git tag -a v{version} -m "release v{version}"
git push --tags

and travis will publish it to pypi.