[Twisted-Python] Throttling static.File
Hi, I wanted to write a http server that would: - show progress of all downloads - only allow one http connection per file per ip - rate limit the connection to 4kb/sec. now, I don't know enough about producers in order to know what pauseProducing and resumeProducing are actually supposed to do. That aside, I know that in the context of static.File and ThrottlingFactory, they're doing something that doesn't work properly. static.FileTransfer.pauseProducing is a no-op static.FileTransfer.resumeProducing sends 63665 bytes down the connection policies.ThrottlingFactory relies on how many bytes have been sent down the connection per-second to work out if it should throttle, and to throtte, it calls pauseProducing until the bytes/second has dropped enough to call resumeProducing. Basically, using these two components together didn't work, so I hacked stuff until it did. Please bear in mind this patch should not be applied because it breaks ThrottlingFactory for anything other than static.File's (calling pauseProducing(pause=1) on something without kwargs would be bad). Is there a 'real' solution to this situation, mine is hideous. (On another note, and this is a nevow thing, NevowSite is broken with static.File - I had to use site.Site( MyNevowPage() ) instead of NevowSite( MyNevowPage() - no big hassle) Stephen.
participants (1)
-
Stephen Thorne