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-3.5.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

swarm_bus-3.5-py2-none-any.whl (8.2 kB view details)

Uploaded Python 2

File details

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

File metadata

  • Download URL: swarm-bus-3.5.tar.gz
  • Upload date:
  • Size: 5.8 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.5.tar.gz
Algorithm Hash digest
SHA256 6992b780ddd248d2be82a819fdf9accc31d4392096c8b158fb47a1b0a3caa9c3
MD5 cb4e2a601f5f90e1e437425cda949876
BLAKE2b-256 2cbb6086ec57171aa6912077c0d2942bbc1def8b4df4c5a536a43e3a3812f671

See more details on using hashes here.

File details

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

File metadata

  • Download URL: swarm_bus-3.5-py2-none-any.whl
  • Upload date:
  • Size: 8.2 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.5-py2-none-any.whl
Algorithm Hash digest
SHA256 1d2bcc0dd7c00ff780d406d47f3720c1e342e2dc6d186365583daf685317102b
MD5 ed0e07d9bb1712a5def7219549c9eff1
BLAKE2b-256 0bbd2f2fc42c04be4e3159fb447432ebc9a618f7dd0b72ea9404ca1f2eb385bf

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