MBQ Atomiq
Project description
Installation
$ pip install mbq.atomiq
Getting started
Add mbq.atomiq to INSTALLED_APPS in your django application’s settings
Add ATOMIQ specific settings to that same settings file. Those are used for metrics.
ATOMIQ = {
'env': CURRENT_ENV,
'service': YOUR_SERICE_NAME,
}
Set up consumers for each queue type that your app needs. mbq.atomiq provides a handy management command for that:
python -m manage atomic_run_consumer --queue sns
python -m manage atomic_run_consumer --queue sqs
python -m manage atomic_run_consumer --queue celery --celery-app path.to.celery.app
notice that celery consumer requires an additional arg celery-app. This should be a module path to the file that instantializes celery app like so:
celery_app = Celery(NAME)
To make sure we’re not holding on to successfully executed or deleted tasks we also have a clean up management command, that by default will clean up all processed tasks that are older than 30 days. That default can be overriden.
python -m manage atomic_cleanup_old_tasks
or
python -m manage atomic_cleanup_old_tasks --days N
or
python -m manage atomic_cleanup_old_tasks --minutes N
Use it!
import mbq.atomiq
mbq.atomiq.sns_publish(topic_arn, message)
mbq.atomiq.sqs_publish(queue_url, message)
mbq.atomiq.celery_publish(celery_task, *task_args, **task_kwargs)
Monitoring
Testing
Tests are automatically in Travis CI https://travis-ci.org/managedbyq/mbq.atomiq but you can also run tests locally using docker-compose. We now use tox for local testing across multiple python environments. Before this use pyenv to install the following python interpreters: cpython{2.7, 3.5, 3.6} and pypy3
$ docker-compose up py36|py27|py37|pypy3
Shipping a New Release
Bump the version in __version__.py
Go to Releases in GitHub and “Draft a New Release”
After creating a new release, Travis CI will pick up the new release and ship it to PyPi
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.