Beispiel #1
0
#!/usr/bin/env python
import msgpack

from cocaine.server.worker import Worker
from cocaine.logging import Logger

__author__ = 'Evgeny Safronov <*****@*****.**>'

log = Logger()


def echo(request, response):
    message = yield request.read()
    log.debug('Message received: \'{0}\'. Sending it back ...'.format(message))
    response.write(msgpack.dumps(message))
    response.close()


W = Worker()
W.run({
    'doIt': echo,
})
#!/usr/bin/env python

from cocaine.server.worker import Worker
from cocaine.services import Service

storage = Service("storage")

def write_dummy(request, response):
    req = yield request.read()
    yield storage.write("dummy-namespace", "dummy-key",
                        req, ["dummy-tag"])
    dummy = yield storage.read("dummy-namespace", "dummy-key")
    response.write(dummy)
    response.close()

W = Worker()
W.run({"write_dummy" : write_dummy})
Beispiel #3
0
After waiting for http request, we read it and get some message from query string (?message=...). Then QR code
generation comes into.
Generated image is sending back via `response` stream.
"""


@http
def generate(request, response):
    request = yield request.read()
    try:
        message = request.request['message']
        out = StringIO.StringIO()
        img = qrcode.make(message)
        img.save(out, 'png')
        response.write_head(200, [('Content-type', 'image/png')])
        response.write(out.getvalue())
    except KeyError:
        response.write_head(400, [('Content-type', 'text/plain')])
        response.write('Query field "message" is required')
    except Exception as err:
        response.write_head(400, [('Content-type', 'text/plain')])
        response.write(str(err))
    finally:
        response.close()


w = Worker()
w.run({
    'generate': generate
})
#!/usr/bin/env python
import msgpack

from cocaine.server.worker import Worker

__author__ = 'EvgenySafronov <*****@*****.**>'


def chunker(request, response):
    chunks = yield request.read()
    try:
        chunks = int(msgpack.loads(chunks))
    except ValueError:
        chunks = int(chunks)

    for num in xrange(chunks):
        response.write(msgpack.dumps('{0:-<1024}'.format(num)))
    response.write(msgpack.dumps('Done'))
    response.close()

W = Worker()
W.run({'spam': chunker})
Beispiel #5
0
#!/usr/bin/env python
# For YaSubbotnik at 15.06.2013

from cocaine.server.worker import Worker

W = Worker() # Dispatcher object

def event_handler(request, response):
    req = yield request.read() # Read incoming data
    if "Hello!" in req:
        response.write("Hello, world!") # Send data chunk
    else:
        response.write("Please, say 'Hello' to me!")
    response.close()

W.run({"hello" : event_handler}) # Run event loop - ready to work!
Beispiel #6
0
from cocaine.server.worker import Worker
from cocaine.logging.defaults import log

__author__ = 'EvgenySafronov <*****@*****.**>'


def echoV0(request, response):
    message = yield request.read()
    log.debug('Message received: \'{0}\'. Sending it back ...'.format(message))
    response.write(message)
    response.close()


def echoV1(request, response):
    response.write('Hi!')
    message = yield request.read()
    log.debug('Message received: \'{0}\'. Sending it back ...'.format(message))
    response.write(message)
    response.write('Another message.')
    message = yield request.read()
    log.debug('Message received: \'{0}\'. Sending it back ...'.format(message))
    response.write(message)
    response.close()


worker = Worker()
worker.run({
    'pingV0': echoV0,
    'pingV1': echoV1,
})
Beispiel #7
0
#!/usr/bin/env python
import logging
import os

from cocaine.decorators.wsgi import django
from cocaine.logging import LoggerHandler
from cocaine.server.worker import Worker

__author__ = 'Evgeny Safronov <*****@*****.**>'

PROJECT_NAME = 'enterprise'


log = logging.getLogger(__name__)
cocaineHandler = LoggerHandler()
log.addHandler(cocaineHandler)

PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))

worker = Worker()
worker.run({
    'work': django(**{
        'root': os.path.join(PROJECT_ROOT, PROJECT_NAME),
        'settings': '{0}.settings'.format(PROJECT_NAME),
        'async': True,
        'log': log
    })
})