Skip to main content

AMQP layer for communicating with the ESB.

Project description

Client side implementation of an ESB via Amazon SQS.

Simple Usage

uri = 'sqs://LOGIN:PASSWORD@'
transport = {
    'region': 'eu-west-1',
    'exchange': 'swarm',
    'queue_name_prefix': 'dev-%(hostname)s-',
    'office_hours': False,
    'use_priorities': True,
    'priorities': ['low', 'high'],
    'queue_living': 864000,       # Default living message
    'queue_sleeping': 0,          # Default sleep time between messages
    'queue_visibility': 30,       # Default visibility message
    'queue_waiting': 10           # Default long polling seconds
}
queues = {
  'my_queue': {
      'route': 'my.queue.route',  # Specific route
      'sleep': 60,                # Seconds before next call to SQS
      'visibility': 1800,         # Visibility message in queue
      'wait': 20                  # Long polling seconds
  },
  'my_second_queue': {}           # Will be automaticaly filled/completed
}

bus = AMQP(uri, transport, queues)
bus.connect()

# We purge a known queue
bus.purge_queue('my_queue')

# Now we add a new queue on the fly
bus.register_queue('new_queue', {'wait': 20})

bus.close()

Using as a producer

with AMQP(uri, transport, queues) as producer:
    producer.publish(
        'my_queue',
        {'id': 42},
        1  # Optional, specify 'high' priority queue
    )

Using as a consumer

def print_routing_key(body, message):
    id_ = body['id']
    rk = message.delivery_info['routing_key']
    print("[x] %r:%r" % (rk, id_))

def ack_message(body, message):
    message.ack()

def error_handler(body, message):
    raise ValueError('Error while processing message')

with AMQP(uri, transport, queues) as consumer:
    consumer.consume(
        'my_queue',
        [print_routing_key, ack_message],
        error_handler
    )

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

swarm-bus-4.2.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

swarm_bus-4.2-py2-none-any.whl (8.7 kB view details)

Uploaded Python 2

File details

Details for the file swarm-bus-4.2.tar.gz.

File metadata

  • Download URL: swarm-bus-4.2.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.18.4 setuptools/36.5.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.12

File hashes

Hashes for swarm-bus-4.2.tar.gz
Algorithm Hash digest
SHA256 05fb759c5a9795ae0e06d61551a7d5f1d40e5a02c9b41edcd16329d2a3c7b108
MD5 3f3e7c81efff21c99cd1048b79e0ba31
BLAKE2b-256 6402ea60a5bc9dbc85394f4b05190af30d67df28dc6d51f9135eaca2dfca4111

See more details on using hashes here.

File details

Details for the file swarm_bus-4.2-py2-none-any.whl.

File metadata

  • Download URL: swarm_bus-4.2-py2-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.18.4 setuptools/36.5.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.12

File hashes

Hashes for swarm_bus-4.2-py2-none-any.whl
Algorithm Hash digest
SHA256 e1bf65a67d37d2d440bfbeda07f54f6a9352a9e1d97e530b61de897ae225f10d
MD5 29722ac576cc0066369da63236570a0f
BLAKE2b-256 01b867eb4f09e3e6609609209e71e3bac36a7de2bd83511d33023a21072e2703

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