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

Uploaded Source

Built Distribution

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

Uploaded Python 2

File details

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

File metadata

  • Download URL: swarm-bus-3.4.tar.gz
  • Upload date:
  • Size: 5.5 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.tar.gz
Algorithm Hash digest
SHA256 c3462c39872e014329a69fafb4e09e2caf53fc7e2427b9458ebaf288a29542b6
MD5 3bdf3e6cd2a3df22c39e799170a6f394
BLAKE2b-256 eaee4802475a8a2334245e8933a43d3a4e36a0925b9162abfb41596e85e225ef

See more details on using hashes here.

File details

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

File metadata

  • Download URL: swarm_bus-3.4-py2-none-any.whl
  • Upload date:
  • Size: 7.8 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-py2-none-any.whl
Algorithm Hash digest
SHA256 f84d6b42e54cb388b6d3045f0db7db6f55ba894b565af5782f46cbca333ba6b3
MD5 3ae9ca64e5ff90b1c17f83993786eaa7
BLAKE2b-256 22261f8be66a56db1e17600c4be3df5726d9b49ecd4ceca3ee03e3a9bddcc57e

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