Pergunta

Estamos usando modelos Glass Mapper com Sitecore 7.1 (MVC Renderings), recentemente implantamos este projeto em ambiente live, mas nosso cliente percebeu que o desempenho está degradando com o tempo, por exemplo, após 8 ~ 12 horas, algumas páginas começam a demorar 20 segundos para carregar.Depois de entrar em contato com o suporte do sitecore e enviar despejos de CPU/memória, a equipe de suporte respondeu:

"Devido ao Glass Mapper frequentemente resolver caminhos de itens, o Sitecore precisa atualizar os registros no cache ItemPaths (onde cada atualização "bloqueia" o cache).Como isso parece acontecer com frequência, o aplicativo encontraria a situação em que alguns threads estariam aguardando que um único thread concluísse a atualização do cache do ItemPaths."

Então, você já encontrou esse problema antes?há algo que preciso fazer com nossos modelos Glass para evitar isso?

Versão "Glass.Mapper" = "3.0.11.23"

Versão "Glass.Mapper.Sc" = "3.1.10.31"

Obrigado

Foi útil?

Solução

O problema estava em nossa classe base que contém a propriedade "Full Path":

public virtual string FullPath { get; set; }

Isso significa que cada vez que o item for carregado pelo glass ele atingirá o cache do caminho, o que estava causando a lentidão.

Atualizei a propriedade para ficar mais parecida com a propriedade 'Lazy Loaded':

[Glass.Mapper.Sc.Configuration.Attributes.SitecoreIgnore()]
public string FullPath {
   get
   {
      return FullPath();\\This method retrieve FullPath from item.Paths.FullPath
   }
}

Isso resolveu o problema.

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