Pergunta

Eu uso Django com jqGrid e carrego páginas via AJAX.Às vezes, as consultas são muito complexas e o carregamento da página é muito lento, pois as páginas distantes são muito mais lentas (o que era de se esperar, os resultados geralmente excedem 100k objetos).Achei que o cache de resultados resolveria o problema, aumentando o tempo de carregamento da primeira página, mas acelerando fortemente o carregamento das páginas subsequentes.

Em vez disso, tornou o carregamento da primeira página incrivelmente lento e até as páginas subsequentes demoraram muito (11 segundos em um PC padrão).Estou usando o back-end de cache do locmem. Alguma ideia?Eu tentei, para uma comparação, armazenar os resultados no dicionário global e isso foi MUITO melhor (as páginas subsequentes levam apenas 1s), mas ouvi dizer que não é uma maneira segura.

Alguma ideia?

Foi útil?

Solução

Você pode tentar aquecer seu cache.Isso pode ser feito manualmente ou usando uma estrutura de enfileiramento como o aipo para que o armazenamento em cache das páginas subsequentes ou querysets aconteça em segundo plano após outro carregamento de página.

Dê uma olhada no johnny-cache, que faz o cache transparente do queryset.Isso pode (repito, pode ) resolver todos os seus problemas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top