def run_web_app(app_class): tornado_define('bind', default='127.0.0.1:8000', group='main', help="server bind address") tornado.options.parse_command_line() enable_logging() instance = app_class.instance() bind_address, bind_port = tornado_options.bind.split(':', 1) if tornado_options.debug: instance.listen(int(bind_port), address=bind_address) else: server = tornado.httpserver.HTTPServer(instance) server.bind(int(bind_port), address=bind_address) server.start(tornado_options.workers) io_loop = tornado.ioloop.IOLoop.instance() instance.before_run(io_loop) io_loop.start()
def register_options(name='master'): opt_name = '' if name == 'master' else '-%s' % name tornado_define('postgres%s-uri' % opt_name, default='postgres:///', group='%s database' % name, help="postgresql connection uri for %s" % name) tornado_define('postgres%s-max-pool-size' % opt_name, default=4, group='%s database' % name, help='connection pool size for %s ' % name) tornado_define('postgres%s-reconnect-interval' % opt_name, default=5, group='%s database' % name, help='reconnect interval for %s' % name)
from os.path import join as path_join, dirname from tornado.gen import coroutine from tornado.options import (define as tornado_define, options as tornado_options, parse_config_file) from tornado.process import fork_processes from tornado.util import import_object from warnings import warn import logging import logging.config import tornado.httpserver import tornado.ioloop import tornado.web tornado_define('workers', default=1, group='main', help="num of workers", type=int) tornado_define('debug', default=False, help="debug", group='main', type=bool) tornado_define("logging-config", default='', group='main', help="path to logging config file") tornado_define("config", type=str, help="path to config file", group='main', callback=lambda path: parse_config_file(path, final=False)) tornado_define('logging', default='info', group='main',
# [________]_|__|________)< |YANG| # oo oo 'oo OOOO-| oo\\_ ~o~~~o~ # +--+--+--+--+--+--+--+--+--+--+--+--+--+ # 23 Jan, 2016 # from devsniff.utils import partition from tornado.options import (define as tornado_define, options as tornado_options) from urlparse import urlparse from os.path import exists as file_exists import functools import sqlite3 import logging tornado_define('database', default='sqlite://devsniff.db', help="path to sqlite file") LOG = logging.getLogger('tornado.application') class SQLiteConnectorError(Exception): pass class SQLiteConnector(object): _instances = dict() @staticmethod def instance(name='master'):
# 23 Jan, 2016 # from devsniff import db_api from devsniff.utils import parse_bind_address, route from tornado.options import (define as tornado_define, options as tornado_options, parse_config_file) from os.path import join as path_join, dirname from tornado.util import import_object from tornado.web import Application as TornadoWebApplication import tornado.ioloop import tornado.httpserver tornado_define("debug", default=False, help="debug", type=bool) tornado_define("bind", default='0.0.0.0:8888', help="proxy listen address") tornado_define("config", type=str, help="path to config file", callback=lambda path: parse_config_file(path, final=False)) def init_app(): db_api.init() from devsniff.proxy import ProxyProfile ProxyProfile.instance().load(1) def start(): from tornado.log import enable_pretty_logging enable_pretty_logging()
# oo oo 'oo OOOO-| oo\\_ ~o~~o~ # +--+--+--+--+--+--+--+--+--+--+--+--+--+ # 2 Feb, 2016 # from {{cookiecutter.project_slug}}.common.app import WebApplication, run_app {%- if cookiecutter.use_database == 'y' %} from {{cookiecutter.project_slug}}.common import postgres {%- endif %} from tornado.options import (define as tornado_define, options as tornado_options) import logging LOG = logging.getLogger('tornado.application') {%- if cookiecutter.use_database == 'y' %} tornado_define('postgres-uri', default='postgres:///', group='database', help="postgresql connection uri") tornado_define('postgres-max-pool-size', default=4, group='database', help='maximum connection pool size of PostgreSQL') tornado_define('postgres-reconnect-interval', default=5, group='database', help='maximum connection pool size of PostgreSQL') {%- endif %} class WebAppServer(WebApplication): enabled_apps = ['{{cookiecutter.project_slug}}.apps.default'] def before_run(self, io_loop): LOG.info('starting default server ...') {%- if cookiecutter.use_database == 'y' %} postgres_settings = dict(