cyme.client

cyme.client

  • Python client for the Cyme HTTP API.

Branches

>>> client = Client("http://localhost:8000")
>>> client.branches
["cyme1.example.com", "cyme2.example.com"]
>>> client.branch_info("cyme1.example.com")
{'sup_interval': 5, 'numc': 2, 'loglevel': 'INFO',
 'logfile': None, 'id': 'cyme1.example.com', 'port': 8000}

Applications

>>> app = client.get("foo")
>>> app
<Client: 'http://localhost:8016/foo'>
>>> app.info
{'name': 'foo', 'broker': 'amqp://guest:guest@localhost:5672//'}

Queues

>>> app.queues.add("myqueue", exchange="myex", routing_key="x")
>>> <Queue: u'myqueue'>
>>> my_queue = app.queues.get("my_queue")
>>> app.queues
[<Queue: u'myqueue'>]

Instances

>>> i = app.instances.add()
>>> i
<Instance: u'd87798f3-0bb0-4161-8e0b-a5f069b1d58b'>
>>> i.name
u'd87798f3-0bb0-4161-8e0b-a5f069b1d58b'
>>> i.broker  # < inherited from app
u'amqp://guest:guest@localhost:5672//'
>>> app.instances
[<Instance: u'd87798f3-0bb0-4161-8e0b-a5f069b1d58b'>]
>>> i.autoscale()   # current autoscale settings
{'max': 1, 'min': 1}
>>> i.autoscale(max=10, min=10)  # always run 10 processes
{'max': 10, 'min': 10}
>>> i.stats()
{'total': {},
 'consumer': {'prefetch_count': 80,
              'broker': {'transport_options': {},
                         'login_method': 'AMQPLAIN',
                         'hostname': '127.0.0.1',
                         'userid': 'guest',
                         'insist': False,
                         'connect_timeout': 4,
                         'ssl': False,
                         'virtual_host': '/',
                         'port': 5672,
                         'transport': 'amqp'}},
'pool': {'timeouts': [None, None],
         'processes': [76003],
         'max-concurrency': 1,
         'max-tasks-per-child': None,
         'put-guarded-by-semaphore': True},
'autoscaler': {'current': 1, 'max': 1, 'min': 1, 'qty': 0}}

Consumers

>>> instance.consumers.add(my_queue)
{"ok": "ok"}
>>> instance_consumers.delete(my_queue)
{"ok": "ok"}
>>> instance.consumers
#... consumers with full declarations ...

Deleting

This will delete the queue and eventually force all worker instances to stop consuming from it:

>>> my_queue.delete()

This will shutdown and delete an instance:

>>> i.delete()
class cyme.client.Client(url=None, app=None, info=None)
class Instances(client)
class Model(*args, **kwargs)
class Consumers(client, name)
create_model(data, *args, **kwargs)
class Client.Instances.Model.LazyQueues(instance)
Client.Instances.Model.autoscale(max=None, min=None)
Client.Instances.Model.queues
Client.Instances.Model.stats()
Client.Instances.add(name=None, broker=None, arguments=None, config=None, nowait=False)
Client.Instances.autoscale(name, max=None, min=None)
Client.Instances.create_model(data, *args, **kwargs)
Client.Instances.stats(name)
class Client.Queues(client)
class Model(parent, *args, **kwargs)
Client.Queues.add(name, exchange=None, exchange_type=None, routing_key=None, nowait=False, **options)
Client.add(name, broker=None, arguments=None, extra_config=None, nowait=False)
Client.all()
Client.app = 'cyme'
Client.branch_info(id)
Client.branches
Client.build_url(path)
Client.clone(app=None, info=None)
Client.create_model(name, info)
Client.delete(name=None)
Client.get(name=None)
class cyme.client.Instance(parent, *args, **kwargs)
arguments

A unicode string field.

broker

A unicode string field.

extra_config

A unicode string field.

is_enabled

A boolean field type.

max_concurrency

A field that validates input as an Integer

min_concurrency

A field that validates input as an Integer

name

A unicode string field.

pool

A unicode string field.

queue_names
class cyme.client.Queue(parent, *args, **kwargs)
exchange

A unicode string field.

exchange_type

A unicode string field.

name

A unicode string field.

options

A unicode string field.

routing_key

A unicode string field.

Previous topic

API Reference

Next topic

cyme.client.base

This Page