Skip to main content

MBQ PubSub

Project description

mbq.pubsub

PyPI Version PyPI License Python Versions Travis CI Status

Installation

$ pip install mbq.pubsub
🚀✨

Guaranteed fresh.

Configuration

# settings.py

SERVICE_NAME = "my-service"

PUBSUB = {
    "ENV": mbq.get_environment("ENV_NAME"),
    "SERVICE": SERVICE_NAME,
    "QUEUES": [
        "foo-updates",
        "bar-updates",
    ],
    "MESSAGE_HANDLERS": {
        "foo.updated": "path.to.handlers.handle_foo_updated",
        "bar.updated": "path.to.handlers.handle_bar_updated",
    },
}

INSTALLED_APPS = {
  ...
  'mbq.pubsub',
  ...
}
# convox.yml

services:
  foo-consumer:
    image: {{DOCKER_IMAGE_NAME}}
    command: newrelic-admin run-python -m manage pubsub consume --queue foo-updates
    init: true
    environment:
      - "*"

  bar-consumer:
    image: {{DOCKER_IMAGE_NAME}}
    command: newrelic-admin run-python -m manage pubsub consume --queue bar-updates
    init: true
    environment:
      - "*"

Using PubSub Without a Database

If your service does not have a database - fear not. The Infra team hath taken pity on you and your brethren. Simply add the setting "USE_DATABASE": False to your PUBSUB config.

Things to keep in mind:

  • There will be no Django admin for viewing/deleting/replaying DLQ messages.
  • To replay the DLQ use the management command ./manage.py pubsub replay --queue <queue_name> <number_of_messages>.

Local Development

Add 127.0.0.1 pubsub.lcl.mbq.io to your /etc/hosts.

Find the env/pubsub/lcl.env Secure Note in 1Password and copy it to env/lcl.env.

$ pbpaste > env/lcl.env

Run migrations and bring up admin the server:

$ docker-compose run tests-admin python -m manage migrate
$ docker-compose up tests-admin

To use the Django admin, you'll need a superuser:

$ docker-compose run tests-admin python -m manage createsuperuser

To end-to-end test mbq.pubsub, you can publish a test message from SNS with:

$ docker-compose run tests-admin python -m manage publish_exception

Then bring up the consumer:

$ docker-compose up pubsub-pubsub-consume-updates

The test message will eventually land on the DLQ, which you can inspect & replay from http://pubsub.lcl.mbq.io:8080/admin/pubsub/undeliverablemessage

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mbq.pubsub-0.1.0.tar.gz (12.9 kB view details)

Uploaded Source

File details

Details for the file mbq.pubsub-0.1.0.tar.gz.

File metadata

  • Download URL: mbq.pubsub-0.1.0.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.6.7

File hashes

Hashes for mbq.pubsub-0.1.0.tar.gz
Algorithm Hash digest
SHA256 58602619deb5ece36b6c86c0dea0c879c1906d3f57cc641ef30e74dcd380372a
MD5 7dee725ec38005d0d9770a2c04fe3625
BLAKE2b-256 9c4cae393fef2c9edac8fb2a99c3bf2d131e5989f8fd102b10caa384b86017c3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page