Helllo、pyftpdlib遅い.readファイルブロックの全体のメインループ
私は、FTPへのHTTPサーバー上のファイルをマップpyftpdlib
上のカスタムAbstractFS
を使用しています。
class HTTPConnWrapper:
def __init__(self, obj, filename):
# make it more file obj like
self.obj = obj
self.closed = True
self.name = filename.split(os.sep)[-1]
def seek(self, arg):
pass
def read(self, bytes):
#print 'read', bytes
read = self.obj.read(100) #we DONT read var byes, but 100 bytes
#print 'ok'
return read
問題は、クライアントがファイルをダウンロードした場合、サーバー全体が低迷becommesことです: このファイルには、以下のクラスによってラップhttplib.HTTPResponse
を返しopen
(AbstractFS
の)私の実装によって返されます。 どうすればいいですか? アイデア
PS: なぜ、猿はすべてevenetlet
でパッチを当てるだけで魔法のように動作しませんか?
問題は、.readがファイルに対して呼び出されたときに制御できないことです。利用可能なデータがない場合は、 – nomoral
'eventlet.green.asyncore'が存在するため、eventletがasyncoreをサポートしているようです – nomoral