VENDAS: 1-800-867-1389

Notificações para o serviço de cache gerenciado do Azure

Atualizado: setembro de 2014

noteObservação
Para orientação sobre como escolher a oferta Azure Cache para seu aplicativo, consulte Qual oferta de cache do Azure é ideal para mim?.

O Cache do Microsoft Azure oferece notificações de cache, que permitem que seus aplicativos recebam notificações assíncronas quando diferentes operações de cache ocorrem em um cache nomeado. Notificações de cache também fornecem invalidação automática de objetos armazenados localmente em cache.

Para receber notificações de cache assíncronas, adicione um retorno de chamada de notificação de cache ao seu aplicativo. Ao adicionar um retorno de chamada, você define os tipos de operações de cache que disparam uma notificação de cache e os métodos que deverão ser chamados no aplicativo quando as operações especificadas ocorrerem. Um cache nomeado deve aceitar e ter as notificações de cache ativadas.

noteObservação
As notificações estão disponíveis nas ofertas de cache Standard e Premium, mas não na oferta de cache Basic. Para obter mais informações, consulte Ofertas de cache para o serviço de cache gerenciado do Azure.

Essas operações de cache são definidas pelos membros da classe DataCacheOperations.

O aplicativo pode receber notificações de cache quando as seguintes operações de cache ocorrerem em uma região:

O aplicativo pode receber notificações de cache quando as seguintes operações de cache ocorrerem em um objeto armazenado em cache (designado como um item dentro do cache).

  • AddItem: quando um item for adicionado ao cache.

  • ReplaceItem: quando um item for substituído no cache.

  • RemoveItem: quando um item for removido do cache.

noteObservação
Por si sós, essas operações de item independem da ocorrência dentro de uma determinada região. Você pode optar por limitar o escopo de notificação do seu retorno de chamada a uma região específica. Isso é discutido na seção "Escopo de notificação" deste documento.

Dependendo da atividade e das necessidades do aplicativo, talvez você não queira prestar atenção aos eventos de todos os objetos e regiões no cache inteiro. O escopo das suas notificações pode ser estreitado do nível de cache para o nível de região e para o nível de item. O escopo de notificação selecionado ao adicionar um retorno de chamada afeta significativamente as notificações de cache recebidas.

No nível de cache, o aplicativo pode ser notificado sobre todas as operações de cache de todos os objetos e regiões no cache. No nível de região, o aplicativo é notificado apenas sobre as operações de cache relativas a uma única região e aos objetos que ela contém. No nível de item, o aplicativo é notificado apenas sobre as operações de cache relativas a um único objeto.

Para especificar o escopo de notificação desejado, escolha um destes três métodos para adicionar um retorno de chamada de notificação de cache:

  • AddCacheLevelCallback: se quiser ser notificado sobre operações de cache baseadas em região e item que ocorram em todas as regiões e itens.

  • AddRegionLevelCallback: se quiser ser notificado sobre operações de cache baseadas em região e item que ocorram em uma região específica.

  • AddItemLevelCallback: se quiser ser notificado sobre operações de cache baseadas em item que ocorram em um item específico.

A ordem das notificações recebidas pelo cliente de cache é garantida no contexto de uma única região. Por exemplo, digamos que você tenha criado uma região chamada RegionA. Como todos os dados armazenados em uma região de cache são limitados à mesma região, todas as operações de cache relativas à RegionA (escopo de notificação em nível de região) chegam ao cliente de cache na ordem adequada em relação umas às outras. Não é garantido que as operações de cache baseadas em região e em item que ocorreram em outros hosts de cache cheguem na ordem adequada em relação às operações que ocorreram na RegionA.

Por razões de desempenho, não é possível garantir a ordem das notificações envolvendo mais de uma região ou objetos que não estejam armazenados na mesma região.

Informações de versão de eventos de item, na forma do objeto DataCacheItemVersion, são passadas para o método invocado pela notificação de cache com o parâmetro version. Esse objeto DataCacheItemVersion corresponde à versão do objeto que disparou o evento de item. Usando o método CompareTo, é possível comparar versões para determinar quais operações de cache ocorreram primeiro.

noteObservação
As comparações de versão só fazem sentido quando são comparadas versões do mesmo item especificadas com a mesma chave. Não é possível deduzir a ordem comparando versões de diferentes chaves; o método CompareTo pode retornar um resultado, mas esse resultado só é válido para versões da mesma chave.

Quando você usa notificações de cache, o aplicativo comunica-se com o cache em intervalos regulares para verificar se há novas notificações disponíveis. Por padrão, esse intervalo, chamado de intervalo de consulta, é de 300 segundos. Aplicativos que executem muitas operações de gravação podem definir um valor menor, mas um intervalo maior pode ser mais eficaz para caches que não mudem com frequência. O padrão de 300 segundos é adequado para a maioria dos caches genéricos.

O intervalo de consulta é especificado em unidades de segundos nos parâmetros de configuração do aplicativo. Para definir um intervalo específico, você pode usar o atributo pollInterval do elemento clientNotifications no arquivo de configuração do aplicativo. Um intervalo de consulta específico também pode ser definido programaticamente com a propriedade NotificationProperties do objeto DataCacheFactoryConfiguration.

O Cache do Microsoft Azure só pode conter uma certa quantidade de operações de cache na memória. É possível que alguns clientes de cache não recebam as notificações antes que estas sejam truncadas nas filas de notificação. Os clientes de cache também podem deixar de receber as notificações quando ocorre perda de dados por falha de cache. Nesses casos, o cliente de cache pode descobrir que deixou de receber algumas notificações de cache usando uma notificação de falha. O aplicativo pode adicionar um retorno de chamada para receber notificações de falha usando o método AddFailureNotificationCallback. Para obter mais informações, consulte How to: Add a Failure Notification Callback

Há uma importante distinção entre perda de notificações e perda do cache. Quando deixa de receber uma ou mais notificações, o aplicativo pode tomar ciência dessa perda por meio de uma notificação de falha. Se todo o cache for excluído, o cliente de cache gerará exceções na próxima vez que tentar usá-lo, porque não conseguirá se conectar ao ponto de extremidade do cache. Certos eventos de cache, como a criação ou exclusão de um cache nomeado, não são informados por meio de notificações. Quando um cache nomeado é excluído depois de registrar notificações, o cliente simplesmente para de receber notificações. Não é possível diferenciar entre a inexistência de um cache nomeado e a ausência de execução de operações em um cache nomeado.

noteObservação
As notificações de cache só informam alterações relacionadas a dados nas regiões e itens do cache; elas não descrevem eventos do próprio cache.

As notificações são configuradas no nível de cache nomeado no Portal de Gerenciamento, na guia Configurar do Cache. A configuração padrão para notificações é Desativado.

Notificações de cache para Serviço de cache do Windows Azure

Nenhum parâmetro de configuração de aplicativo é necessário para adicionar um retorno de chamada a fim de receber notificações de cache. Você pode usar os parâmetros de configuração do aplicativo para definir um intervalo de consulta específico. Por padrão, o intervalo de consulta é de 300 segundos. Se quiser usar uma duração diferente, use o elemento clientNotification no arquivo de configuração do aplicativo, baseado em XML, ou especifique o intervalo desejado programaticamente com a propriedade NotificationsProperties do objeto DataCacheFactoryConfiguration.

Depois que as notificações de cache são ativadas, existem três tarefas relacionadas ao uso de notificações de cache: adicionar retornos de chamada de notificação de cache, adicionar um retorno de chamada de notificação de falha e remover retornos de chamada de notificação de cache. Os procedimentos de cada uma dessas tarefas são descritos no restante desta documentação.

Consulte também

Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários
A Microsoft está realizando uma pesquisa online para saber sua opinião sobre o site do MSDN. Se você optar por participar, a pesquisa online lhe será apresentada quando você sair do site do MSDN.

Deseja participar?
Mostrar:
© 2014 Microsoft