2010-02-23 2 views

Répondre

1

Si l'application C++ parle directement à la base de données, vous pouvez utiliser la mise en cache de fragments en combinaison avec cache_key.

C'est facile et intégré dans Rails. Tout ce que vous avez à faire est de vous assurer que votre application C++ met à jour le champ updated_at de l'enregistrement lorsque le contenu de l'enregistrement principal est mis à jour. Ensuite, vous pouvez étendre votre fragment à l'objet d'enregistrement et le cache expirera automatiquement lorsque l'enregistrement est modifié.

<% cache [@article, :metadata] do %> 
here the content to be cached 
for example the <%= @article.title %>. 
:metadata is simply a name for this fragment. 
<% end %> 

En supposant que le record @article a été enregistré sur 2010-02-10 18:00:00, le fragment sera mis en mémoire cache à /path/to/cache/.../24-20100210180000. Lorsque votre C++ met à jour l'enregistrement et modifie la colonne updated_at, le cache sera invalidé et la prochaine requête sera automatiquement renvoyée au contenu.

Pour plus d'informations sur la mise en cache, consultez http://railslab.newrelic.com/scaling-rails

Questions connexes