예제 #1
0
파일: server_scgi.py 프로젝트: philn/alinea
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
import os
import sqlite3
from quixote.publish import Publisher
from quixote import enable_ptl
enable_ptl()
import ui

_DB_PATH = os.path.join(os.path.dirname(os.path.realpath(__file__)),
                        'hello.db')

def create_publisher():
    db = sqlite3.connect(_DB_PATH)
    return Publisher(ui.RootDirectory(db),
                     display_exceptions='plain')


if __name__ == '__main__':
    from quixote.server.scgi_server import run
    host = 'localhost'
    port = 3000
    print 'creating demo listening on %s:%d' % (host, port)
    run(create_publisher, host=host, port=port)
예제 #3
0
파일: go_scgi.py 프로젝트: jsgf/imagestore2
#!/usr/bin/python

import quixote.config
import quixote.session

from quixote.server.scgi_server import run
from quixote.publish1 import Publisher

import imagestore.session
import imagestore.config

config = quixote.config.Config()
config.read_file('imagestore/config.conf')

def create_my_publisher():
    imagestore.db.db_connect()
    p = Publisher(imagestore, config=config)
    session_manager=quixote.session.SessionManager(session_class=imagestore.session.ImagestoreSession,
                                                   session_mapping=imagestore.session.ImagestoreSessionMapping())
    p.set_session_manager(session_manager)
    return p

if __name__ == '__main__':
    run(create_my_publisher,
        port=imagestore.config.get('server', 'scgi_port'),
        script_name=imagestore.config.get('server', 'path'))