Como posso impedir que o TastyPie faça consultas UPDATE sem motivo?

9

Estou vendo algumas ocorrências usuais na minha inscrição. Por nenhuma razão, meu servidor fica lento quando tenho pouco ou nenhum tráfego. Depois de muita tentativa e erro, descobri que meus problemas desapareceram quando removi o ToOneField do meu recurso TastyPie !

O que eu encontrei foi por alguma razão desconhecida que o TastyPie está fazendo DB UPDATES nesses ToOneFields sem nenhuma boa razão! Qual o ... momento!

Encontreiumpossívelbugarquivado aqui que alega ter corrigido o problema de atualização. Eu instalei a versão mais recente do pip , mas ainda vejo esse problema.

Alguém pode ajudar?

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)

Tão pouco tráfego aqui, mas se torna inutilizável.

    
por Prometheus 05.04.2014 в 23:33
fonte

2 respostas

2

Não sei se isso ajudará você, mas tenho visto um pequeno aumento de desempenho em um aplicativo em que trabalhei, usando select_related no queryset e full=True no campo de recursos.

Experimente queryset = Incentive.objects.select_related('product_introducer', 'product_friend').all().order_by('-date_created')

    
por Farhan Khan 06.04.2014 / 01:28
fonte
0

Você pode reproduzir os UPDATEs do SQL em um ambiente de teste?

Se sim, eis como depurá-lo:

Modifique a fonte onde o comando sql é executado: insira uma declaração assert que nenhuma atualização é feita.

Se o assert falhar, você tem o stacktrace do estranho UPDATE.

Se este stacktrace não ajudar você, poste aqui.

    
por guettli 09.04.2014 / 22:00
fonte