Esses dias estavamos desenvolvendo nossa nova ferramenta de publicação (CMA), desenvolvida em Ruby on Rails, pro Assine Já e Central de Relacionamento e me deparei com um “problema” com relação a limpeza de cache.
Na edição dos elementos do turbine, onde mudamos a ordem dos elementos e quais elementos estarão disponíveis, precisava limpar um monte de chave armazenada no memcached.
Como eram muitas chaves para limpar, teremos poucas edições no cma e não temos uma quantidade enorme de chaves armazenadas, decidimos por limpar todas as chaves do memcached.
Fácil tarefa né? Nem tanto! Por incrível que pareça, procurar por “memcached flush_all rails” não aponta nenhum exemplo real de como se limpar o cache da forma que eu queria!
Só achei depois de ler a documentação do Cache da lib ActiveSupport, que vc pode ver aqui.
Lá, voce encontra a documentação da implementação da classe MemCacheStore, onde facilmente voce encontra o método clear() que chama o flush_all do memcached. É só chamar Rails.cache.clear()! Fácil né!
Uma opção que acabei lendo em alguns fórum foi usar um plugin para poder usar o método detele_matched, mas não achei necessário. Como não testei, não vou dar minha opinião sobre o plugin, mas fica a dica aqui.
O incrivel é como a página de documentação de rails com relação ao flush_all do memcached não aparece como primeira opção na pesquisa do Google!
Espero que ajude alguém essa dica! rsrs Vamos ver se pelo menos o google acha essas informações aqui no meu blog!
Abs