Cache que sempre retorna uma resposta imediata?

1

Eu tenho um serviço da web que leva um tempo para criar uma resposta, apesar de estar sintonizado da melhor maneira possível.

O que eu gostaria é de algum tipo de cache na frente do serviço, que sempre retornaria o último valor conhecido do serviço, mas ao mesmo tempo passaria o pedido de volta ao serviço para construir uma resposta atualizada. para o próximo pedido.

Estou ciente das limitações que isso traz ao frescor dos dados, mas você pode supor que estou feliz por viver com isso.

As tecnologias que estou usando no momento são python uwsgi via nginx, mas isso não precisa ser um limite para qualquer solução que você possa sugerir.

Col

    
por Col Wilson 28.06.2012 / 23:08

1 resposta

2

Supondo que você quer um proxy reverso, você pode usar o Varnish no modo saint ou o squid com a diretiva stale-if-error.

Se você quiser cache no aplicativo, usando memcached por exemplo, apenas não confie no mecanismo de expiração de armazenamento - expira o prazo com o objeto em cache array(cached_object=>object, expiry=>timestamp) e reaja se encontrar um cache obsoleto: aumente a validade para agora + um pouco de time (para evitar o dogpiling - vários processos gerando novamente o cache em paralelo), use o cache antigo, inicialize a atualização.

    
por 28.06.2012 / 23:16

Tags