Если приложение C ++ обращается напрямую к базе данных, вы можете использовать фрагментное кэширование в сочетании с cache_key .
Это простой и встроенный в Rails. Все, что вам нужно сделать, это убедиться, что ваше приложение C ++ обновляет поле updated_at записи при обновлении основного содержимого записи.
Затем вы можете поместить свой фрагмент в объект записи, и кэш автоматически истечет при изменении записи.
<% cache [@article, :metadata] do %>
here the content to be cached
for example the <%= @article.title %>.
:metadata is simply a name for this fragment.
<% end %>
При условии, что запись @article была сохранена 2010-02-10 18:00:00, фрагмент будет кэшироваться в /path/to/cache/.../24-20100210180000
. Когда ваш C ++ обновляет запись и изменяет столбец updated_at, кеш будет признан недействительным, и следующий запрос автоматически снова попадет на содержимое.
Для получения дополнительной информации о кэшировании, проверьте http://railslab.newrelic.com/scaling-rails