Skip to main content

Azure Queue Brokers for Dramatiq

Project description

dramatiq-azure

CI Pypi codecov Code style: black PRs Welcome

A Dramatiq broker that can be used with Microsoft Azure queue services.

Heavily inspired by Dramatiq SQS, this package currently implements a broker for Azure Storage Queue. An implementation for Azure Service Bus is planned... eventually.

Installation

    pip install dramatiq-azure

Usage

ASQBroker

The broker looks for AZURE_STORAGE_CONNECTION_STR in the environment, to authenticate on Azure Storage. You need to make sure that the variable exists at runtime.

Creating a connection string for your Azure account is documented here.

import os
import dramatiq

from dramatiq.middleware import AgeLimit, TimeLimit, Callbacks, Pipelines, Prometheus, Retries
from dramatiq_azure import ASQBroker


broker = ASQBroker(
    dead_letter=True,
    middleware=[
        Prometheus(),
        AgeLimit(),
        TimeLimit(),
        Callbacks(),
        Pipelines(),
        Retries(min_backoff=1000, max_backoff=900000, max_retries=96),
    ],
)
dramatiq.set_broker(broker)

Tests

Tests require a running Azurite instance. You can easily launch azurite through Docker.

docker run -p 10000:10000 -p 10001:10001 -p 10002:10002 mcr.microsoft.com/azure-storage/azurite

Run the test suite

pytest

Contributions

Found an itch you know how to scratch? PR welcome

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

dramatiq_azure-0.2.0.tar.gz (8.7 kB view hashes)

Uploaded Source

Built Distribution

dramatiq_azure-0.2.0-py3-none-any.whl (9.3 kB view hashes)

Uploaded Python 3

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