Cache

Recuperar notificações para os módulos de exibição pode ser caro em um sistema com milhares de notificações, principalmente no nível do Painel de notificações, que englobam todos os cursos disponíveis. Para ajudar a atenuar a carga de execução dessa consulta, o sistema de notificação inclui um cache por usuário, por seção:

  • O cache armazena os resultados de uma consulta de notificação para um usuário, uma seção e um contexto específicos. Isso significa que o sistema mantém caches separados para cada usuário e curso conectado, no nível global do painel de notificações.
  • O usuário pode atualizar manualmente o cache. A atualização remove o cache de todos os caches de uma determinada seção.
  • O cache não será atualizado com a chegada de novas notificações. O usuário terá de atualizar manualmente para visualizá-las ou aguardar o limite do cache. Veja a tabela a seguir com o valores padrão de limite:
  • O cache responderá a exclusões manuais de notificações. Se um usuário excluir uma notificação de uma exibição específica, ela também será excluída do cache em todos os contextos.

O cache é configurado usando propriedades no arquivo de configuração bb-config.properties.

Propriedades do cache
Propriedade Chave Valor padrão
Número máximo de elementos bbconfig.cache.nautilusCache.elements 500 segundos
Tempo de duração bbconfig.cache.nautilusCache.timetolive 600 segundos
Tempo ocioso bbconfig.cache.nautilusCache.timetoidle 600 segundos
Eterno bbconfig.cache.nautilusCache.eternal Não

Se o desempenho associado aos módulos de exibição comprovarem ser um problema, os administradores podem ajustar essas configurações para aumentar a longevidade das notificações com cache. O compromisso aqui é o seguinte, quanto maior o cache, maior será o atraso das notificações.

As configurações do cache não afetam a distribuição de notificação.


Tamanho das notificações

O armazenamento da notificação pode ficar muito grande. Esta seção inclui estratégias para que isso seja evitado.

Desativar notificações que não são necessárias

Por padrão, o sistema envia com todas as notificações ativadas, o que significa que cada notificação pode ser criada, e será criada, para todos os eventos suportados. Dependendo do tamanho da sua instituição e a maneira em que os cursos são configurados no começo do semestre, poderão ser criadas tabelas muito grandes e degradações associadas ao desempenho.

Uma boa ideia é desativar as notificações desnecessárias. Para isso, navegue até as páginas Configurações do curso => Configurações de notificação padrão e Configurações de organização => Configurações de notificação padrão e configure essas notificações como Sempre desativado para todos os distribuidores disponíveis.

Uma alternativa é desativar algumas notificações durante períodos turbulentos. Por exemplo, desative as notificações do Item de conteúdo disponível enquanto os modelos do curso estão sendo concluídos já que provavelmente serão responsáveis pela massa da carga de notificações durante aquele período.

Reduzir a vida útil da notificação

As notificações são notificações periodicamente excluídas que já existiam há mais tempo que um determinado número de dias. A configuração padrão é 120 dias, que é aproximadamente a duração de um semestre. Você pode controlar a mortalidade dessas notificações atualizando o intervalo Limpeza de notificações. Diminua essa configuração para remover notificações do sistema rapidamente. Para saber mais, consulte Definição de opções de notificação.

Use essa configuração com cuidado. As notificações excluídas não podem ser recuperadas ou reemitidas facilmente.


Tarefas de notificação em segundo plano

O sistema de notificação depende de duas tarefas, ambas definidas no arquivo de configuração bb-tasks.xml.

Tarefas de notificação em segundo plano
Nome da tarefa Interno (minutos) Propósito
NotificationRemoveStaleDataTask 5 Essa tarefa possui várias funções:
  • Enviar lembretes para eventos Com data de vencimento. Os lembretes são enviados x dias antes de o item vencer, em que x é um número que pode ser configurado pelos usuários nas configurações de notificação pessoal.
  • Altere as notificações Com data de vencimento em que as datas já passaram em notificações Vencidas.
  • Envie e-mails compilados em horários programados. Os e-mails compilados são enviados uma vez por dia por um administrador.
  • Exclua dados obsoletos do destinatário. Obsoleto, neste contexto, significa registros do destinatário que estão no sistema por x dias, onde x é um número que pode ser configurado pelos administradores. Por padrão, ele é definido para manter os destinatários durante todo o semestre. Essa operação é configurada para ser executada somente uma vez por dia.
DistributionSendNotificationTask 60 Envie notificações Não processadas para todos os distribuidores registrados.

NotificationRemoveStaleDataTask

O tempo das notificações quando a limpeza ocorre pode ser definido por administradores na página Configurações gerais de notificação.

Todas as notificações Com data de vencimento serão transformadas em eventos Vencidos quando passar o prazo final. Elas incluem: Exercício com data de vencimento, Teste com data de vencimento, Item avaliável com data de vencimento e Pesquisa com data de vencimento.

A última função dessa tarefa, excluir dados obsoletos ao destinatário, é executada uma vez por dia. Sempre que a tarefa for ativada, ela verifica se o tempo de execução foi atingido. Se foi, ela é executada. O tempo de execução é especificado pela propriedade nautilus.staleDataRemove.executionTime no arquivo de configuração nautilus_config.properties.

Periodicidade da tarefa

Alterar a periodicidade da tarefa terá os seguintes impactos:

  1. Alteração no tempo em que notificações Com data de vencimento se tornam notificações Vencidas. Na configuração padrão, as notificações serão alteradas no máximo cinco minutos após o prazo final.
  2. Alteração no tempo em que os lembretes são enviados. Na configuração padrão, eles são distribuídos no máximo cinco minutos após o horário do lembrete.
  3. Alteração no tempo em que a tarefa de exclusão de dados obsoletos é executada. Na configuração padrão, ela é executada dentro de cinco minutos do tempo designado.

Considerações de desempenho

A parte da limpeza de notificação dessa tarefa é executada durante a noite em um horário especificado pela propriedade nautilus.staleDataRemove.executionTime no arquivo de configuração nautilus_config.properties. Por padrão, ele é definido todos os dias, à 1h.

Essa consulta é extremamente intensiva no desempenho porque basicamente digitaliza toda a tabela eud_item_recipient procurando por notificações desatualizadas e excluindo-as.

Se você achar que essa tarefa pode ser um problema no seu sistema apesar de todas as precauções, você pode:

  1. Alterar o tempo de execução. Várias instituições possuem outras tarefas de manutenção que são executadas a noite, e se essa tarefa entrar em conflito com as outras ou danificar de alguma forma o servidor do banco de dados, é possível executá-la em um horário diferente. Em outras palavras: O Blackboard recomenda não executar essa tarefa durante o dia ou em qualquer outro período em que as pessoas possam usar o sistema de forma intensiva.
  2. Tome algumas providências para reduzir o tamanho do armazenamento de notificação. Quanto menor o número de notificações, mais rápido a consulta será executada. Para dicas sobre como fazer isso, consulte Tamanho das notificações.

DistributionSendNotificationTask

Para garantir que essa tarefa não seja executada por um período excessivo de tempo, ela lida com apenas um número limitado de notificações em uma execução específica. Os administradores podem definir essa configuração na propriedade nautilus.distribution.notificationsPerDistribution no arquivo de configuração nautilus_config.properties. A configuração padrão é 10.000.

As tarefas de distribuição envia notificações a todos os distribuidores registrados. Para a maioria das instituições, isso significa que elas serão enviadas somente ao e-mail do distribuidor. O desempenho pode ser reduzido quando um novo distribuidor é adicionado ao mix.

Periodicidade da tarefa

Alterar a periodicidade dessa tarefa irá mudar a frequência em que o sistema envia notificações. Na configuração padrão, a notificação será distribuída em no máximo uma hora após ela ser introduzida ao sistema. Os administradores do sistema pode definir o período no qual as notificações são distribuídas no sistema Learn editando o arquivo tasks.xml na pasta BB_HOME/config/. O valor do período é encontrado em blackboard.platform.nautilus.service.internal.DistributionSendNotificationTask.

O número de notificações distribuídas por notificação também afeta quando a notificação será enviada. Os administradores podem definir essa configuração em nautilus.distribution.notificationsPerDistribution no arquivo de configuração nautilus_config.properties.

Considerações de desempenho

Essa tarefa é executada frequentemente, mas ela limita o número de notificações processadas em uma única execução. Essa abordagem em duas etapas para distribuição permite que o sistema envie notificações logo após serem disponibilizadas, sem derrubar o sistema, quando o carregamento da notificação é muito grande, por exemplo, no começo do semestre, quando novos cursos então sendo lançados on-line.

Se o processo de distribuição estiver reduzindo o desempenho, diminua a periodicidade, transformando desempenho por rapidez. Se as distribuições estiverem demorando muito, reduza o número de notificações manipuladas por execução.

Se você achar que as notificações estão demorando muito para chegar, você também pode reduzir a periodicidade dessa tarefa e o número de notificações processadas por execução.

Alguns destinatários são removidos somente no nome. Ou seja, os registros associados são mantidos e meramente marcados com o status EXCLUÍDO.