2017-05-07 78 views
0

可能脫離主題,但無法研究此問題。我有一個Django REST安裝,我希望能夠在響應之前模擬隨機數量的延遲。來自Django REST的響應延遲

我的看法(從DRF教程基本上逐字):

class SnippetList(generics.ListCreateAPIView): 
    queryset = Snippet.objects.all() 
    serializer_class = SnippetSerializer 


class SnippetDetail(generics.RetrieveUpdateDestroyAPIView): 
    queryset = Snippet.objects.all() 
    serializer_class = SnippetSerializer 

而且我希望能夠3和5之間返回成功響應之前的失敗響應。任何指導極大的讚賞。

回答

2

您可以覆蓋您的視圖的方法dispatch。下面將返回每5個請求,平均正確響應:

import random 
from django.http import Http404 

class SnippetList(generics.ListCreateAPIView): 
    # ... 

    def dispatch(self, request, *args, **kwargs): 
     if random.random() < 0.2: 
      return super(SnippetList, self).dispatch(request, *args, **kwargs) 
     raise Http404 # or any other custom behaviour 

如果你真的永遠要早於第n個請求,返回正確的響應,你必須堅持,因爲請求的數量最後的正確迴應。會話可能在某個地方(如果計數是基於每個用戶的話)或數據庫。

+0

這正是我正在尋找的,謝謝! – Toby