예제 #1
0
 def __init__(self, address, wsgi_app):
     # Convenient way of creating a socket. \o/
     self.sock = _tcp_listener(address, reuse_addr=1)
     self.address = address
     self.application = wsgi_app
     self.num_workers = 0
     self.workers = set()
     self.worker_args = (), {}
     self.last_spawn = None
     self.exit_completed = gevent.event.Event()
     self.stop_event = gevent.event.Event()
예제 #2
0
파일: app.py 프로젝트: zhoufan2013/clutch
def main():
    try:
        from gevent.baseserver import _tcp_listener
        dir(_tcp_listener)  # Placate PyFlakes
    except ImportError:
        from gevent.server import _tcp_listener

    port = int(getattr(settings, 'CLUTCH_RPC_PORT', 8088))
    host = getattr(settings, 'CLUTCH_RPC_HOST', '0.0.0.0')

    listener = _tcp_listener((host, port), reuse_addr=1)

    serve_forever(listener, host, port)
예제 #3
0
파일: app.py 프로젝트: BetaDesign/clutch
def main():
    try:
        from gevent.baseserver import _tcp_listener
        dir(_tcp_listener)  # Placate PyFlakes
    except ImportError:
        from gevent.server import _tcp_listener

    port = int(getattr(settings, 'CLUTCH_RPC_PORT', 8088))
    host = getattr(settings, 'CLUTCH_RPC_HOST', '0.0.0.0')

    listener = _tcp_listener((host, port), reuse_addr=1)

    serve_forever(listener, host, port)
예제 #4
0
파일: tunnel.py 프로젝트: BetaDesign/clutch
def main():
    try:
        from gevent.baseserver import _tcp_listener
        dir(_tcp_listener)  # Placate PyFlakes
    except ImportError:
        from gevent.server import _tcp_listener

    for root, dirs, files in os.walk(CACHE_PREFIX):
        for d in dirs:
            shutil.rmtree(os.path.join(root, d), ignore_errors=True)

    port = int(getattr(settings, 'CLUTCH_TUNNEL_PORT', 41675))
    host = getattr(settings, 'CLUTCH_TUNNEL_HOST', '0.0.0.0')

    listener = _tcp_listener((host, port), reuse_addr=1)

    serve_forever(listener, host, port)
예제 #5
0
def main():
    try:
        from gevent.baseserver import _tcp_listener
        dir(_tcp_listener)  # Placate PyFlakes
    except ImportError:
        from gevent.server import _tcp_listener

    for root, dirs, files in os.walk(CACHE_PREFIX):
        for d in dirs:
            shutil.rmtree(os.path.join(root, d), ignore_errors=True)

    port = int(getattr(settings, 'CLUTCH_TUNNEL_PORT', 41675))
    host = getattr(settings, 'CLUTCH_TUNNEL_HOST', '0.0.0.0')

    listener = _tcp_listener((host, port), reuse_addr=1)

    serve_forever(listener, host, port)
예제 #6
0
    start_response("200 OK", response_headers)
    return iter([local_data])

def build_app(redisconn=0):
    global RedisPool
    max_conn = int(redisconn)
    if max_conn==0:
        RedisPool = None
        return app
    RedisPool = ConnectionPool(max_connections = max_conn,host=Redis_url.hostname, port=Redis_url.port)
    return app_redis

def serve_forever(listener, procname=''):
    setproctitle(procname)
    myapp = app
    if RedisPool:
        myapp = app_redis
    wsgi_tech.WSGIServer(listener, myapp, log=None).serve_forever()

if __name__ == '__main__':
    import os
    port=os.getenv('PORT', 5000)
    listener = _tcp_listener( ('0.0.0.0', int(port)) )
    wsgi_tech = pywsgi if options.pywsgi else wsgi
    default_title=sys.argv[0].replace('./','')
    tech_string = ' [pywsgi]' if options.pywsgi else ' [wsgi]'
    for i in xrange(options.workers):
        title = default_title + tech_string + ' [worker]'
        Process(target=serve_forever, args=(listener, title)).start()
    setproctitle(default_title + tech_string + ' [master]')
예제 #7
0
 def __init__(self, addr, port, cmd_addr, cmd_port, script):
     self.cmd_addr = cmd_addr
     self.cmd_port = cmd_port
     self.worker_pids = []
     self.script = script
     self.sock = _tcp_listener((addr, port), reuse_addr=1)
예제 #8
0
 def __init__(self, addr, port, cmd_addr, cmd_port, script):
     self.cmd_addr = cmd_addr
     self.cmd_port = cmd_port
     self.worker_pids = []
     self.script = script
     self.sock = _tcp_listener((addr, port), reuse_addr=1)
예제 #9
0
import apps.radartile
import apps.wms

PORT = 8000

def app(env, resp):
    
    appmap = {
        "/data": apps.radartile.app,
        "/map": apps.wms.app,
    }

    for app in appmap:
        if env["PATH_INFO"] == app:
            return appmap[app](env, resp)

    return static.Cling('.')(env, resp)


def start_server(listener):
    pywsgi.WSGIServer(listener, app, handler_class=WebSocketHandler).serve_forever()

if __name__ == "__main__":
    listener = _tcp_listener(('0.0.0.0', PORT))

    for i in range(cpu_count()):
        Process(target=start_server, args=(listener,)).start()

    start_server(listener)
예제 #10
0
파일: snippet.py 프로젝트: szabo92/gistable
import sys
from gevent import server
from gevent.baseserver import _tcp_listener
from gevent import pywsgi
from gevent.monkey import patch_all
patch_all()
from multiprocessing import Process, current_process, cpu_count


def hello_world(env, start_response):
    if env['PATH_INFO'] == '/':
        start_response('200 OK', [('Content-Type', 'text/html')])
        return ["<b>hello world</b>"]
    else:
        start_response('404 Not Found', [('Content-Type', 'text/html')])
        return ['<h1>Not Found</h1>']


listener = _tcp_listener(('127.0.0.1', 8001))


def serve_forever(listener):
    pywsgi.WSGIServer(listener, hello_world).serve_forever()


number_of_processes = 5
print 'Starting %s processes' % number_of_processes
for i in range(number_of_processes):
    Process(target=serve_forever, args=(listener, )).start()

serve_forever(listener)
        '--port',
        type=int,
        required=True,
        help='Indicate the port on which to bind the application')
    parser.add_argument('--processors',
                        type=int,
                        required=True,
                        help='Number of listener processes to spawn. '
                        'Use 0 for (cpu_count()*2)+1')
    args = parser.parse_args()

    basicConfig(format='%(levelname)s:%(name)s:%(asctime)s %(message)s',
                stream=sys.stdout,
                level=DEBUG)

    listener = _tcp_listener(('0.0.0.0', args.port))

    def serve_forever(listener):
        pywsgi.WSGIServer(listener, dev_server).serve_forever()

    if args.processors == 0:
        num_proc = cpu_count() * 2 + 1
    else:
        num_proc = args.processors

    for i in range(num_proc):
        Process(target=serve_forever, args=(listener, )).start()

    print 'Starting server on port {}'.format(args.port)
    serve_forever(listener)
    parser = ArgumentParser(
        description='Start a development pdp.wsgi:dev_server Flask instance')
    parser.add_argument(
        '-p', '--port', type=int, required=True,
        help='Indicate the port on which to bind the application')
    parser.add_argument(
        '--processors', type=int, required=True,
        help='Number of listener processes to spawn. '
             'Use 0 for (cpu_count()*2)+1')
    args = parser.parse_args()

    basicConfig(format='%(levelname)s:%(name)s:%(asctime)s %(message)s',
                stream=sys.stdout, level=DEBUG)

    listener = _tcp_listener(('0.0.0.0', args.port))

    def serve_forever(listener):
        pywsgi.WSGIServer(listener, dev_server).serve_forever()

    if args.processors == 0:
        num_proc = cpu_count() * 2 + 1
    else:
        num_proc = args.processors

    for i in range(num_proc):
        Process(target=serve_forever, args=(listener, )).start()

    print 'Starting server on port {}'.format(args.port)
    serve_forever(listener)