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']
}
queues = {
  'my_queue': {
      'route': 'my.queue.route',  # Specific route
      'sleep': 60,                # Seconds before next call to SQS
      'visibility': 1800,         # Visibility message in queue
      'wait': 10                  # 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-3.4.2.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

swarm_bus-3.4.2-py2-none-any.whl (7.9 kB view details)

Uploaded Python 2

File details

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

File metadata

  • Download URL: swarm-bus-3.4.2.tar.gz
  • Upload date:
  • Size: 5.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-3.4.2.tar.gz
Algorithm Hash digest
SHA256 9c63bfe17128f72a690993386d17c6019df0b71f4528d258a047185c32beccbf
MD5 716d9c12ef4bd0c0316f7c83a6db7ac9
BLAKE2b-256 fcc0153f451f29d85a8ee174918916d534464961c7a416c0b8fa309be8e97ced

See more details on using hashes here.

File details

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

File metadata

  • Download URL: swarm_bus-3.4.2-py2-none-any.whl
  • Upload date:
  • Size: 7.9 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-3.4.2-py2-none-any.whl
Algorithm Hash digest
SHA256 165f2db3b4f20ca38cc528b35e08544f3ba8240b4c2e57cea4022531e3d00319
MD5 bb38aba4acc8550eaddfbe240163be00
BLAKE2b-256 4b0987e8639cd8d911c39e909a493161edf6244e8e54cf41aefda29a8d5e4de7

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