Skip to main content

An async python Background task system using Azure Service Bus Queues

Reason this release was yanked:

retry-task-failure

Project description

Boilermaker

Async Python background tasks with Azure ServiceBus

Tests PyPI version Python 3.11+ Documentation

Boilermaker is a lightweight task runner exclusively for async Python and Azure Service Bus Queues. If you need a fully-featured task runner with multiple backends, consider Celery instead.

Quick Start

Install

pip install "boilermaker-servicebus"

Basic Usage

import asyncio
from boilermaker import Boilermaker, retries
from boilermaker.config import Config
from boilermaker.service_bus import AzureServiceBus

# Configure (loads from environment variables)
config = Config()
service_bus = AzureServiceBus.from_config(config)

# Create app with shared state
class AppState:
    def __init__(self):
        self.data = {"count": 0}

app = Boilermaker(AppState(), service_bus)

# Define background task
async def process_data(state, data_id):
    """state is injected automatically as first parameter"""
    print(f"Processing {data_id}")
    state.data["count"] += 1
    return f"Processed {data_id}"

# Register task
app.register_async(process_data, policy=retries.RetryPolicy.default())

# Publish task
async def main():
    await app.apply_async(process_data, "item_123")

# Run worker (separate process)
async def worker():
    await app.run()  # Runs forever

if __name__ == "__main__":
    asyncio.run(main())

Environment Variables

export SERVICE_BUS_NAMESPACE_URL="https://your-namespace.servicebus.windows.net/"
export SERVICE_BUS_QUEUE_NAME="your-queue-name"

Key Features

  • Async-only: Built for async Python applications
  • Retry Policies: Exponential, linear, and fixed backoff strategies
  • Task Chaining: Success/failure callbacks and workflows

Documentation

📖 Complete Documentation

Requirements

  • Python 3.11+
  • Azure ServiceBus namespace and queue
  • All task arguments must be JSON-serializable

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

boilermaker_servicebus-1.0.0a1.tar.gz (106.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

boilermaker_servicebus-1.0.0a1-py3-none-any.whl (125.6 kB view details)

Uploaded Python 3

File details

Details for the file boilermaker_servicebus-1.0.0a1.tar.gz.

File metadata

  • Download URL: boilermaker_servicebus-1.0.0a1.tar.gz
  • Upload date:
  • Size: 106.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for boilermaker_servicebus-1.0.0a1.tar.gz
Algorithm Hash digest
SHA256 ccae5d57d997d7cd8610a320908cee63b3cc6d00cace48137c0cce544b9a4129
MD5 8a3cb9bbf910fcb267af6f5457b34ba5
BLAKE2b-256 7f4f8240cd11086b69e7d6a7e7376b52491ab08ff3e4c8efd96a96233eca8b99

See more details on using hashes here.

Provenance

The following attestation bundles were made for boilermaker_servicebus-1.0.0a1.tar.gz:

Publisher: release.yaml on MulliganFunding/boilermaker-servicebus

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file boilermaker_servicebus-1.0.0a1-py3-none-any.whl.

File metadata

File hashes

Hashes for boilermaker_servicebus-1.0.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 10261d2af2467294cd725ec622ecc26c5f7e3cecc54f57fcac690a51f4e6b459
MD5 a8969ac741a068f0c56800e8b38fa79a
BLAKE2b-256 235137ef9e7c550c59748b145b4302a1de67d1b883803411cac43928ae707373

See more details on using hashes here.

Provenance

The following attestation bundles were made for boilermaker_servicebus-1.0.0a1-py3-none-any.whl:

Publisher: release.yaml on MulliganFunding/boilermaker-servicebus

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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