gevent内でtornado.httpserver.HTTPServerを実行する方法はありますか?
私は大きなファイルのアップロード用の単純なプロキシ サーバーを作成しています。アイデアは単純です。サーバーの束の空き領域を監視し (これまでのところ問題はありません)、PUT 要求を WebDAV サーバーの 1 つにルーティングする必要があります。効率のためにチャンクごとにストリーミングしたいのですが、gevent の pywsgi に基づくソリューションを思いつくことができませんでした。
settings = setup()
log.info('Listening on %s:%d' % (settings.host, settings.port))
# server for request routing
server = WSGIServer((settings.host, settings.port), app)
# separate greenlet to periodically get info about cluster free space
monitor = gevent.spawn(storage_monitor, settings.timeout)
# setup a proper signals to stop server and monitor greenlet
gevent.signal(signal.SIGTERM, monitor.kill)
gevent.signal(signal.SIGINT, monitor.kill)
gevent.signal(signal.SIGQUIT, monitor.kill)
gevent.signal(signal.SIGTERM, server.stop)
gevent.signal(signal.SIGINT, server.stop)
gevent.signal(signal.SIGQUIT, server.stop)
# start the server
server.start()
gevent.wait()
多分私は一般的に何かを理解していませんか?gevent docs はまだ 1.0 に更新されていないので、かなりの作業です :)
また、ユーザー gevent の StreamServer + カスタム プロトコルの方がよいのでしょうか。