#!/usr/bin/python
# -*- coding=utf-8 -*-
import os
import sys
# 这个并发库, python3 自带, python2 需要: pip install
futures
from concurrent.futures import
ThreadPoolExecutor
import tornado.ioloop
import tornado.web
import util.config
from urls import handlers
from util.database import engine
reload(sys)
sys.setdefaultencoding('utf-8')
def main():
port =
7777
settings =
{
'debug': True,
'login_url': '',
'cookie_secret': ''
}
application =
tornado.web.Application(handlers, **settings)
application.engine =
engine
application.executor
= ThreadPoolExecutor(200) # 并发数量
application.listen(port)
('>>>>> Starting development server at
http://localhost:{}/ <<<<
tornado.ioloop.IOLoop.instance().start()
if __name__ == '__main__':
main()
#
basehandler.py
#!/usr/bin/python
# -*- coding=utf-8 -*-
import json
import tornado.web
from redis import StrictRedis
from sqlalchemy.orm import sessionmaker
import util.config
from util import util_redis
class BaseHandler(tornado.web.RequestHandler):
def __init__(self,
application, request, **kwargs):
self.session =
sessionmaker(bind=application.engine)()
self.redis =
StrictRedis(util.config.get('redis', 'host'),
util.config.get('redis', 'port'))
self.executor = application.executor
super(BaseHandler, self).__init__(application,
request, **kwargs)
#
examplehandler.py
#!/usr/bin/python
# -*- coding=utf-8 -*-
import time
from tornado.concurrent import run_on_executor
from api.basehandler import BaseHandler
class ExampleHandler(BaseHandler):
__model__ =
'Example'
@run_on_executor
def
get(self):
# do something
pass