forked from binux/qiandao
-
Notifications
You must be signed in to change notification settings - Fork 0
/
run.py
executable file
·46 lines (38 loc) · 1.3 KB
/
run.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# vim:fenc=utf-8
#
# Copyright © 2016 Binux <[email protected]>
import sys
import logging
import tornado.log
from tornado.ioloop import IOLoop, PeriodicCallback
from tornado.httpserver import HTTPServer
import config
from web.app import Application
from worker import MainWorker
if __name__ == "__main__":
# init logging
logger = logging.getLogger()
logger.setLevel(logging.DEBUG if config.debug else logging.INFO)
channel = logging.StreamHandler(sys.stdout)
channel.setFormatter(tornado.log.LogFormatter())
logger.addHandler(channel)
if not config.debug:
channel = logging.StreamHandler(sys.stderr)
channel.setFormatter(tornado.log.LogFormatter())
channel.setLevel(logging.WARNING)
logger.addHandler(channel)
if len(sys.argv) > 2 and sys.argv[1] == '-p' and sys.argv[2].isdigit():
port = int(sys.argv[2])
else:
port = config.port
http_server = HTTPServer(Application(), xheaders=True)
http_server.bind(port, config.bind)
http_server.start()
worker = MainWorker()
io_loop = IOLoop.instance()
PeriodicCallback(worker, config.check_task_loop, io_loop).start()
worker()
logging.info("http server started on %s:%s", config.bind, port)
IOLoop.instance().start()