2014-04-05 12 views
9

Tôi thấy một số thông thường trong ứng dụng của mình. Vì không có lý do gì máy chủ của tôi chậm lại khi tôi có ít hoặc không có lưu lượng truy cập. Sau nhiều lần thử và sai, tôi thấy vấn đề của mình biến mất khi tôi xóa ToOneField trên tài nguyên TastyPie của mình!Làm cách nào để ngăn TastyPie thực hiện truy vấn UPDATE mà không có lý do?

Điều tôi thấy là vì một số lý do không xác định TastyPie đang thực hiện DB CẬP NHẬT trên các ToOneFields này không có lý do chính đáng! Những gì ... thời điểm!

enter image description here

Tôi tìm thấy một lỗi có thể nộp here đó khẳng định đã khắc phục sự cố cập nhật. Tôi đã cài đặt phiên bản mới nhất từ ​​pip nhưng vẫn thấy sự cố này.

Có ai giúp được không?

class IncentiveResource(ModelResource): 
    product_introducer = fields.ToOneField(ProductResource, 'referrer_product', full=True) 
    product_friend = fields.ToOneField(ProductResource, 'referee_product', full=True) 

    class Meta: 
     queryset = Incentive.objects.all().order_by('-date_created') 
     resource_name = 'incentive' 
     allowed_methods = ['get'] 
     authentication = MultiAuthentication(ClientAuthentication(), ApiKeyAuthentication()) 
     authorization = Authorization() 
     filtering = { 
      "active": ALL, 
     } 
     always_return_data = True 
     cache = SimpleCache(cache_name='resources', timeout=10) 

Vì vậy, ít lưu lượng truy cập ở đây nhưng không sử dụng được. enter image description here enter image description here

+0

Kết quả hồ sơ được hiển thị ở trên ... công cụ nào đã thực hiện? – 8one6

+0

@ 8one6 đó là Di tích mới – Prometheus

Trả lời

2

Tôi không biết nếu điều này sẽ giúp bạn, nhưng tôi đã nhìn thấy một sự gia tăng hiệu suất nhẹ trong một ứng dụng tôi đã làm việc trên trong khi sử dụng select_related trong queryset và full=True trong lĩnh vực tài nguyên.

Hãy thử queryset = Incentive.objects.select_related('product_introducer', 'product_friend').all().order_by('-date_created')

+1

Xin chào Farhan cảm ơn vì đã trả lời. Có, tôi cũng đọc điều này và tôi nghĩ rằng nó sẽ giúp, tuy nhiên, thực tế là Tastypie đang làm DB UPDATES không có lý do chính đáng là mối quan tâm chính của tôi. – Prometheus

0

bạn có thể sao chép các bản cập nhật sql trong một môi trường thử nghiệm?

Nếu có, đây là cách tôi sẽ gỡ lỗi nó:

Sửa đổi các nguồn nơi lệnh sql được thực hiện: chèn một tuyên bố assert rằng không cập nhật được thực hiện.

Nếu số assert không thành công, bạn có stacktrace của UPDATE lạ.

Nếu ngăn xếp ngăn xếp này không giúp bạn, hãy đăng nó ở đây.

Các vấn đề liên quan