コード例 #1
0
def main():
	gevent.signal(signal.SIGQUIT, gevent.shutdown)
	global port
	global address
	if port and type(port) is str:
		port = int(port)
	if not address:
		address = "127.0.0.1"
	try:
		server = WSGIServer((address, port), app)

		if serverType is "fastcgi":
			print ("Now serving py as a fastcgi server at %s:%i" % (address, port))
		else:
			print ("Now serving py at %s:%i" % (address, port))
		print "Press Ctrl+c or send SIGQUIT to stop"

		print "\r\nHeres some fancy URLs also:\n\r"

		print "  Url : Class Name"
		print "  -------------------------"
		for url in urls:
			print ("  %s : %s" % (url['url'], url["object"].__name__))
		
		if serverType is "fastcgi":
			print "\r\n\r\nNo logging of requests done here."
			print "Check your server logs instead."
		else:
			print "\r\n\r\nNow logging requests:"
			print "  Remote IP - - [YYYY-MM-DD HH:MM:SS] \"METHOD url HTTP/version\" Status code Something Request timing"
			print "------------------------------------------------------------------------------------------------------"

		server.serve_forever()
	except KeyboardInterrupt:
		gevent.shutdown
コード例 #2
0
    def handle(self, *args, **options):
        from os.path import abspath, dirname, isdir
        from gevent_fastcgi.server import WSGIServer
        from django.core.handlers.wsgi import WSGIHandler
        
        if not args:
            raise CommandError('bind address is not specified')

        if len(args) > 1:
            raise CommandError('unexpected arguments: %s', ' '.join(args[1:]))

        try:
            host, port = args[0].split(':', 1)
        except ValueError:
            address = abspath(args[0])
            if not isdir(dirname(address)):
                raise CommandError('directory %s does not exist', dirname(address))
        else:
            try:
                address = (host, int(port))
            except ValueError:
                raise CommandError('port must be an integer value')
        
        if options['daemonize']:
            from django.utils.daemonize import become_daemon

            daemon_opts = dict((key, value) for key, value in options.items() if key in
                    ('our_home_dir', 'out_log', 'err_log', 'umask'))
            become_daemon(**daemon_opts)

        app = WSGIHandler()
        server = WSGIServer(address, app, max_conns=options['max_conns'], max_reqs=options['max_reqs'])
        server.serve_forever()
コード例 #3
0
ファイル: utils.py プロジェクト: yueyoum/gevent-fastcgi
class make_server_conn(object):
    
    def __init__(self, address=default_address, app=app, **server_params):
        self.address = address
        self.app = app
        self.server_params = server_params

    def __enter__(self):
        self.server = WSGIServer(self.address, self.app, **self.server_params)
        self.server.start()
        self.conn = make_connection(self.address)
        return self.conn.__enter__()
    
    def __exit__(self, exc_type, exc_value, traceback):
        try:
            self.conn.__exit__(exc_type, exc_value, traceback)
        finally:
            self.server.stop()
コード例 #4
0
ファイル: utils.py プロジェクト: yueyoum/gevent-fastcgi
class make_server(object):
    """ Wrapper around server to ensure it's stopped
    """
    def __init__(self, address=default_address, app=app, **kw):
        self.server = WSGIServer(address, app, **kw)
        self.server.start()

    def __enter__(self):
        return self.server

    def __exit__(self, exc_type, exc_value, traceback):
        self.server.stop()

    def __del__(self):
        if hasattr(self, 'server'):
            self.server.stop()
コード例 #5
0
ファイル: utils.py プロジェクト: yueyoum/gevent-fastcgi
 def __enter__(self):
     self.server = WSGIServer(self.address, self.app, **self.server_params)
     self.server.start()
     self.conn = make_connection(self.address)
     return self.conn.__enter__()
コード例 #6
0
ファイル: utils.py プロジェクト: yueyoum/gevent-fastcgi
 def __init__(self, address=default_address, app=app, **kw):
     self.server = WSGIServer(address, app, **kw)
     self.server.start()