diff -r 4e4e2fda4e66 -r fe2efe3600ea script/stream/recorder_tweetstream.py --- a/script/stream/recorder_tweetstream.py Thu Sep 08 21:24:21 2011 +0200 +++ b/script/stream/recorder_tweetstream.py Fri Sep 09 19:58:39 2011 +0200 @@ -38,13 +38,16 @@ def set_logging(options): - utils.set_logging(options, logging.getLogger('iri.tweet')) - utils.set_logging(options, logging.getLogger('multiprocessing')) + loggers = [] + + loggers.append(utils.set_logging(options, logging.getLogger('iri.tweet'))) + loggers.append(utils.set_logging(options, logging.getLogger('multiprocessing'))) if options.debug >= 2: - utils.set_logging(options, logging.getLogger('sqlalchemy.engine')) + loggers.append(utils.set_logging(options, logging.getLogger('sqlalchemy.engine'))) #utils.set_logging(options, logging.getLogger('sqlalchemy.dialects')) #utils.set_logging(options, logging.getLogger('sqlalchemy.pool')) #utils.set_logging(options, logging.getLogger('sqlalchemy.orm')) + return loggers def set_logging_process(options, queue): qlogger = utils.set_logging(options, logging.getLogger('iri.tweet.p'), queue) @@ -331,6 +334,8 @@ help="Twitter track", metavar="TRACK") parser.add_option("-n", "--new", dest="new", action="store_true", help="new database", default=False) + parser.add_option("-D", "--daemon", dest="daemon", action="store_true", + help="launch daemon", default=False) parser.add_option("-r", "--reconnects", dest="reconnects", help="Reconnects", metavar="RECONNECTS", default=10, type='int') parser.add_option("-t", dest="token_filename", metavar="TOKEN_FILENAME", default=".oauth_token", @@ -478,13 +483,9 @@ return stop_args -if __name__ == '__main__': - - (options, args) = get_options() +def main(options, args): - set_logging(options) - - utils.get_logger().debug("OPTIONS : " + repr(options)) + global conn_str conn_str = options.conn_str.strip() if not re.match("^\w+://.+", conn_str): @@ -531,4 +532,28 @@ add_process_event(type="shutdown", args=stop_args, session_maker=Session) utils.get_logger().debug("Done. Exiting.") + + + +if __name__ == '__main__': + + (options, args) = get_options() + + loggers = set_logging(options) + + utils.get_logger().debug("OPTIONS : " + repr(options)) + + if options.daemon: + import daemon + import lockfile + hdlr_preserve = [] + for logger in loggers: + hdlr_preserve.extend([h.stream for h in logger.handlers]) + + context = daemon.DaemonContext(working_directory=os.getcwd(), files_preserve=hdlr_preserve) + with context: + main(options, args) + else: + main(options, args) +