2012-04-24 9 views
14
को धीमा कर सकते हैं

सरल सवाल वास्तव मेंमैं Django

./manage.py runserver 

मैं नीचे localhost:8000 मेरे विकास मशीन पर धीमा कर सकते हैं तो मैं फ़ाइल अपलोड और काम अनुकरण कर सकते हैं देखो और ajax अपलोड करने के लग रहा है पर?

+1

वर्चुअलाइज्ड वातावरण में चलाएं जो आपको निष्पादन की गति को नियंत्रित करने की अनुमति देता है? – Marcin

+0

आप बड़ी फाइलें अपलोड कर सकते हैं। – jpic

उत्तर

15

इस पर निर्भर करता है कि आप कहां अनुकरण करना चाहते हैं, आप बस सो सकते हैं?

from time import sleep 
sleep(500) 
+1

यह क्लाइंट-साइड पर HttpRequest टाइमआउट का परीक्षण करने का मेरा पसंदीदा तरीका है। –

+1

अच्छा विचार। मुझें यह पसंद है! – Sevenearths

4

आप customized upload handler या उपclass वर्तमान अपलोड हैंडलर को मुख्य रूप से receive_data_chunk() विधि को धीमा करने के लिए लिख सकते हैं। या receive_data_chunk() के अंदर एक पीडीबी ब्रेकपॉइंट सेट करें और अपलोडिंग मैन्युअल रूप से आगे बढ़ें। या यहां तक ​​कि सरल, कुछ बड़ी फ़ाइल अपलोड करने का प्रयास करें।

8

OSX या freebds पर, आप विशिष्ट पोर्ट पर बैंडविड्थ को सीमित करने के ipfw उपयोग कर सकते हैं:

sudo ipfw pipe 1 config bw 1Bytes/s delay 100ms 
    sudo ipfw add 1 pipe 1 src-port 8000 

इसे हटाने के लिए मत भूलना जब आप इसे अब और ज़रूरत नहीं है:

sudo ipfw delete 1 

Credit: jaguarcy

ओएसएक्स के लिए भी मुफ्त ऐप है जो टी को अनुमति देगा उसके:

http://slowyapp.com/

+0

धीमे आगंतुकों के लिए पेज लोड का परीक्षण करने के लिए मुझे सामान्य रूप से इस विधि से प्यार है। जब तत्व लगातार लोड हो रहे हैं तो डोम प्रसंस्करण बहुत अलग दिखता है ...! –

+0

तो यदि मैं अपने मैक पर 'लोकलहोस्ट' Django सर्वर से एक वेबपृष्ठ का परीक्षण कर रहा हूं, तो यह देरी पृष्ठ लोड का अनुकरण करेगा? – SexyBeast

0

मैं चार्ल्स HTTP प्रॉक्सी के एक बड़े प्रशंसक हूँ। यह आपको कनेक्शन को थ्रॉटल करने देता है और नेटवर्क की सभी स्थितियों का अनुकरण कर सकता है।

http://www.charlesproxy.com/

1

Django-gubbins से धीमी गति से फाइल अपलोड हैंडलर का उपयोग करें:

import time 
from django.core.files.uploadhandler import FileUploadHandler 

class SlowFileUploadHandler(FileUploadHandler): 
    """ 
    This is an implementation of the Django file upload handler which will 
    sleep between processing chunks in order to simulate a slow upload. This 
    is intended for development when creating features such as an AJAXy 
    file upload progress bar, as uploading to a local process is often too 
    quick. 
    """ 
    def receive_data_chunk(self, raw_data, start): 
     time.sleep(2) 
     return raw_data 

    def file_complete(self, file_size): 
     return None 

आप इस विश्व स्तर पर सक्षम कर सकते हैं, में जोड़कर:

FILE_UPLOAD_HANDLERS = (
    "myapp.files.SlowFileUploadHandler", 
    "django.core.files.uploadhandler.MemoryFileUploadHandler", 
    "django.core.files.uploadhandler.TemporaryFileUploadHandler", 
) 

या के लिए इसे सक्षम एक विशिष्ट अनुरोध:

request.upload_handlers.insert(0, SlowFileUploadHandler()) 

सुनिश्चित करें कि अनुरोध सीएसआरएफ जांच से बाहर है, जैसा कि https://docs.djangoproject.com/en/dev/topics/http/file-uploads/#id1