#!/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})
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})
#!/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!
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, })
#!/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 }) })