-#!/usr/bin/python2.6
+#!/usr/bin/python
-import daemon
-import logging
-import logging.handlers
-import os
-import signal
-import sys
-
-#import tornado.httpserver
-#import tornado.ioloop
+import tornado.ioloop
import tornado.options
-from webapp import Application
+tornado.options.define("port", type=int, default=8001, help="Port to listen on")
-if __name__ == "__main__":
- app = Application(configfile="webapp.conf")
+from webapp import Application
- context = daemon.DaemonContext(
- working_directory=os.getcwd(),
-# stdout=sys.stdout, stderr=sys.stderr, # XXX causes errors...
- )
+def run():
+ tornado.options.parse_command_line()
- context.signal_map = {
- signal.SIGHUP : app.reload,
- signal.SIGTERM : app.shutdown,
- }
+ # Initialize application
+ app = Application(configfile="webapp.conf")
+ app.listen(tornado.options.options.port)
-# with context:
-# app.run()
+ # Launch IOLoop
+ tornado.ioloop.IOLoop.current().start()
- app.run()
+run()
#/usr/bin/python
import logging
-import multiprocessing
import os.path
-import simplejson
-import tornado.httpserver
import tornado.locale
+import tornado.options
import tornado.web
-from tornado.options import options
-
import backend
from handlers import *
self.__backend = None
settings = dict(
- debug = options.debug,
+ debug = tornado.options.options.debug,
login_url = "/login",
template_path = os.path.join(BASEDIR, "templates"),
ui_methods = {
logging.info("Successfully initialied application")
- self.__running = True
-
- def __del__(self):
- logging.info("Shutting down application")
-
@property
def backend(self):
if self.__backend is None:
return self.__backend
- @property
- def ioloop(self):
- return tornado.ioloop.IOLoop.instance()
-
- def shutdown(self, *args):
- logging.debug("Caught shutdown signal")
- self.ioloop.stop()
-
- self.__running = False
-
- def run(self, port=8001):
- logging.debug("Going to background")
-
- http_server = tornado.httpserver.HTTPServer(self, xheaders=True)
-
- num_processes = multiprocessing.cpu_count()
-
- # If we are not running in debug mode, we can actually run multiple
- # frontends to get best performance out of our service.
- if not self.settings["debug"]:
- http_server.bind(port)
- http_server.start(num_processes=num_processes)
- else:
- http_server.listen(port)
-
- # All requests should be done after 30 seconds or they will be killed.
- self.ioloop.set_blocking_log_threshold(30)
-
- self.ioloop.start()
-
- def reload(self):
- logging.debug("Caught reload signal")
-
def format_month_name(self, handler, month):
_ = handler.locale.translate