Pika connection pooling inspired by:
Typically you'll go with local shovels, krazee-eyez kombu, etc. but this works too.
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,
)
)
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