Пример #1
0
def serve_forever(port, alineaPackage, configFile):

    config = Config()
    config.read_file(configFile)

    sessionPickle = SessionPickle(sessionsPickleFile)
    sessions = sessionPickle.loadSessions()
    sessMgr = SessionManager(session_class=MySession, session_mapping=sessions)

    def create_publisher():        

        directory = __import__('%s' % alineaPackage).Directory.AlineaDirectory()
        pub = Publisher(directory, config=config, session_manager=sessMgr)
        return pub

    # we have to give SCGI the script_name of you app, so we extract it
    # from the site url.
    script_name = urllib2.urlparse.urlparse(site_url)[2]

    lock = threading.Lock()

    try:
        run(create_publisher, port=port,script_name=script_name,max_children=1)
    except KeyboardInterrupt:
        if not lock.locked:
            sessionPickle.saveSessions(sessMgr.sessions)
            lock.acquire()
Пример #2
0
def main():

    out = sys.stdout
    sys.stdout = EmptyFile()
    sys.stderr = EmptyFile()

    # session handling
    sessionPickle = SessionPickle(config.sessionsPickleFile)
    sessions = sessionPickle.loadSessions()
    sessMgr = SessionManager(session_class=MySession, session_mapping=sessions)

    directory = AlineaDirectory()
    conf = Config()
    conf.read_file(CONFIG)
    publisher = Publisher(directory, session_manager=sessMgr, config=conf)

    request = HTTPRequest(sys.stdin, os.environ)
    response = publisher.process_request(request)

    response.write(out)

    sessionPickle.saveSessions(sessMgr.sessions)