#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.ioloop import IOLoop
import aioredis
import os
from tornado.options import define, options
define("port", default=8888, help="run on the given port", type=int)
async def redis_connect(loop):
redistogo_url = os.getenv('REDISTOGO_URL', None)
if redistogo_url:
redis_url = redistogo_url
redis_url = redis_url.split('redis://')[1]
redis_url = redis_url.split('/')[0]
REDIS_USER, redis_url = redis_url.split(':', 1)
REDIS_PWD, redis_url = redis_url.split('@', 1)
REDIS_HOST, REDIS_PORT = redis_url.split(':', 1)
else:
REDIS_HOST = '127.0.0.1'
REDIS_PORT = 6379
REDIS_PWD = None
REDIS_USER = None
client = await aioredis.create_redis(
(REDIS_HOST, REDIS_PORT), loop=loop)
# the following three line code is for testing
await client.set('my-key', 'xff')
val = await client.get('my-key')
print(val)
return client
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
class Application(tornado.web.Application):
def __init__(self):
handlers = [
(r"/", MainHandler),
]
self.redis = redis_connect(IOLoop.current())
super(Application, self).__init__(handlers)
def main():
tornado.options.parse_command_line()
http_server = tornado.httpserver.HTTPServer(Application())
http_server.listen(options.port)
tornado.ioloop.IOLoop.current().start()
if __name__ == "__main__":
main()