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

Uploaded Source

Built Distribution

swarm_bus-3.2-py2-none-any.whl (7.8 kB view details)

Uploaded Python 2

File details

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

File metadata

  • Download URL: swarm-bus-3.2.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.9.1 pkginfo/1.4.1 requests/2.18.4 setuptools/36.5.0 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/2.7.12

File hashes

Hashes for swarm-bus-3.2.tar.gz
Algorithm Hash digest
SHA256 34c1320cfe0fb20da9d368ed516236c50b56da8fa7e6dbbc8a5c4a83c2575a5a
MD5 815575abe91e6c68c475d3c691f57a6c
BLAKE2b-256 6fe4f5ff774c71b39c1b917d89328bd3a903222dd4f19635497de2b824946a99

See more details on using hashes here.

File details

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

File metadata

  • Download URL: swarm_bus-3.2-py2-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.9.1 pkginfo/1.4.1 requests/2.18.4 setuptools/36.5.0 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/2.7.12

File hashes

Hashes for swarm_bus-3.2-py2-none-any.whl
Algorithm Hash digest
SHA256 e0fc117acedc8a68b16e7e35a233ba9b3029606592ef1a65a8cdcb5aa2dfdc51
MD5 b215bc847de6340732351181a1105f8b
BLAKE2b-256 95bef40b892e6bf9143426cbccb8cfe472192ace223ee927c3991f2857ff2a39

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