Кэш

Для получения уведомлений для модулей просмотра может понадобиться большое количество ресурсов, поскольку в системе содержатся сотни тысяч уведомлений, в особенности на уровне панели мониторинга уведомлений, которая охватывает все доступные курсы. Чтобы сократить нагрузку при выполнении такого запроса, в системе уведомлений предусмотрено хранение в кэше данных об отдельных пользователях и сеансах.

  • В кэше хранятся результаты запроса на уведомление для отдельных пользователя, сеанса и контекста. Это означает, что в системе существуют отдельные кэши для каждого пользователя и каждого курса, в который заходит пользователь, и на глобальном уровне, для панели мониторинга уведомлений.
  • Пользователь может обновлять кэш вручную. Обновление приводит к очистке кэша от всех контекстов указанного сеанса.
  • При поступлении новых уведомлений кэш не обновляется. Чтобы увидеть их, пользователю придется выполнить обновление вручную или дождаться окончания времени ожидания кэша. В таблице ниже приведены значения времени ожидания по умолчанию.
  • Кэш реагирует на удаления уведомлений вручную. Поэтому если пользователь удалит уведомление из определенного режима просмотра, оно будет также удалено из кэша во всех контекстах.

Кэш настраивается с помощью параметров, указанных в файле конфигурации bb-config.properties.

Свойства кэша
Свойство Ключ Значение по умолчанию
Максимальное число элементов bbconfig.cache.nautilusCache.elements 500 секунд
Время жизни bbconfig.cache.nautilusCache.timetolive 600 секунд
Время простоя bbconfig.cache.nautilusCache.timetoidle 600 секунд
Вечный bbconfig.cache.nautilusCache.eternal Нет

Если при отображении модулей возникают проблемы с производительностью, администраторы могут изменить эти настройки, чтобы увеличить время существования кэшируемых уведомлений. Недостаток в том, что чем больше время кэша, тем более устаревшими могут быть уведомления.

Настройки кэша не влияют на рассылку уведомлений.


Изменение размера уведомлений

Хранилище уведомлений может достигать достаточно больших размеров. В этом разделе описаны стратегии, которые помогут избежать этого.

Отключение ненужных уведомлений

По умолчанию все уведомления в системе включены. Это означает, что все уведомления, которые можно создавать, будут созданы для всех поддерживаемых событий. В зависимости от размера вашего учреждения и принципов создания курсов, применяемых в начале семестра, таблицы могут достигать очень больших размеров, что приведет к понижению производительности.

В этом случае будет целесообразным выключить ненужные уведомления. Для этого перейдите на страницы Настройки курса => Настройки уведомлений по умолчанию и Настройки организации => Настройки уведомлений по умолчанию, затем присвойте этим уведомлениям значение Всегда выключено для всех доступных распределителей.

Альтернативным решением является выключение определенных уведомлений в периоды высокой нагрузки. Например, при работе с шаблонами курсов стоит выключить уведомления Доступен элемент содержимого, поскольку в противном случае большое количество уведомлений приведет к повышенной нагрузке на систему.

Уменьшение продолжительности существования уведомлений

Система предусматривает периодическое удаление уведомлений, которые старше определенного количества дней. По умолчанию это происходит каждые 120 дней, что приблизительно соответствует продолжительности семестра. Регулировать срок существования этих уведомлений можно с помощью параметра Очистка уведомлений. Чтобы уведомления удалялись из системы быстрее, следует уменьшить значение этого параметра. Дополнительные сведения см. в статье Настройка параметров уведомлений.

Пользуйтесь этой настройкой с осторожностью. Удаленные уведомления нельзя восстановить или отправить повторно.


Фоновые задачи уведомлений

Работа системы уведомлений зависит от двух задач, определяемых в файле конфигурации bb-tasks.xml.

Фоновые задачи уведомлений
Название задачи Интервал (в минутах) Назначение
NotificationRemoveStaleDataTask 5 У этой задачи есть несколько функций.
  • Отправление напоминаний о событиях со сроком выполнения. Напоминания отправляются за x дней до окончания срока выполнения, где x — число, которое пользователи могут изменять в персональных настройках уведомлений.
  • Замена уведомлений со сроком выполнения, для которых это время прошло, на просроченные уведомления.
  • Отправление по электронной почте дайджестов в соответствии с расписанием. Дайджесты отправляются по электронной почте один раз в день в установленное администратором время.
  • Удаление устаревших данных о получателях. В этом контексте под устаревшими подразумеваются записи о получателях, которые находятся в системе в течение x дней, где x — число, задаваемое администраторами. По умолчанию этот параметр настроен таким образом, что уведомления отправляются получателям в течение всего семестра. В соответствии с настройками эта операция выполняется только один раз в день.
Задача DistributionSendNotificationTask 60 Отправление необработанных уведомлений всем зарегистрированным распространителям.

NotificationRemoveStaleDataTask

Срок, по окончании которого выполняется очистка уведомлений, настраивается администраторами на странице Общие настройки уведомлений.

Все уведомления со сроком выполнения по истечении этого срока заменяются на события Просрочено. Речь идет о следующем: Срок выполнения задания, Срок выполнения теста, Срок выполнения оцениваемого элемента и Срок выполнения опроса.

Последняя функция этой задачи, удаление устаревших данных о получателях, выполняется один раз в день. Каждый раз, когда задача становится активной, она сверяется со временем. Если время выполнения наступило, то задача выполняется. Это время задается параметром nautilus.staleDataRemove.executionTime в файле конфигурации nautilus_config.properties.

Периодичность задачи

Изменение периодичности этой задачи приводит к указанным ниже результатам.

  1. Изменение периода времени, по истечении которого уведомления о событиях со сроком выполнения становятся уведомлениями о просроченных событиях. Согласно настройкам по умолчанию уведомления заменяются не позже, чем через пять минут по истечении срока выполнения.
  2. Изменение скорости отправления напоминаний. Согласно настройкам по умолчанию они рассылаются не позже, чем через пять минут после наступления времени напоминания.
  3. Изменение периодичности запуска задачи по удалению устаревших данных. Согласно настройкам по умолчанию эта задача запускается не позднее, чем через пять минут после назначенного времени.

Вопросы производительности

Очистка уведомлений в рамках этой задачи происходит каждую ночь во время, заданное параметром nautilus.staleDataRemove.executionTime файла конфигурации nautilus_config.properties. По умолчанию это происходит один раз в сутки, в 1:00.

Этот запрос является чрезвычайно ресурсоемким из-за сканирования всей таблицы eud_item_recipient на наличие устаревших уведомлений и их удаления.

Если несмотря на принятые меры предосторожности эта задача задействует много ресурсов системы, можно выполнить еще несколько действий.

  1. Изменить время выполнения. Во многих учреждениях на ночь планируются другие задачи по обслуживанию, и в случае возникновения конфликтов либо повышенной нагрузки на сервер базы данных можно настроить ее запуск на другое время. Внесем ясность: компания Blackboard настоятельно не рекомендует запускать эту задачу днем или в любой период времени, когда ожидается интенсивное использование системы.
  2. Принять меры по уменьшению размера хранилища уведомлений. Чем меньше у вас уведомлений, тем быстрее будет выполнен этот запрос. О том, как это сделать, см. в разделе Изменение размера уведомлений.

Задача DistributionSendNotificationTask

Чтобы эта задача не выполнялась слишком долго, при каждом ее запуске обрабатывается только ограниченное число уведомлений. Администраторы могут изменять эту настройку с помощью параметра nautilus.distribution.notificationsPerDistribution в файле конфигурации nautilus_config.properties. Значение по умолчанию составляет 10 000.

С помощью задач по рассылке уведомления отправляются всем зарегистрированным распределителям. Для большинства учреждений это означает отправку уведомлений только для рассылки по электронной почте. При добавлении нового распределителя производительность несколько падает.

Периодичность задачи

От периодичности выполнения этой задачи зависит частота рассылки уведомлений системой. Конфигурация по умолчанию предполагает рассылку уведомлений не позже, чем через час после их поступления в систему. Системные администраторы могут устанавливать период для рассылки уведомлений в системе Learn. Для этого нужно внести изменения в файл tasks.xml в папке BB_HOME/config/. Значение этого периода задается параметром blackboard.platform.nautilus.service.internal.DistributionSendNotificationTask.

Количество уведомлений, рассылаемых при вызове задачи, также влияет на время отправки уведомления. Администраторы могут изменять эту настройку с помощью nautilus.distribution.notificationsPerDistribution в файле конфигурации nautilus_config.properties.

Вопросы производительности

Эта задача выполняется достаточно часто, но каждый ее запуск ограничен максимальным количеством обрабатываемых уведомлений. Такой двусторонний подход к рассылке позволяет системе отправлять уведомления вскоре после того, как они становятся доступными, не увеличивая нагрузку на систему в периоды обработки особенно большого количества уведомлений, например в начале семестра, когда новые курсы только добавляются в систему.

Если процесс рассылки снижает производительность, сократите периодичность, жертвуя скоростью ради производительности. Если рассылка занимает слишком много времени, сократите число уведомлений, обрабатываемых за одно выполнение задачи.

Если же вы обнаружите, что уведомления приходят недостаточно быстро, сократите периодичность этой задачи и число уведомлений, обрабатываемых за одно выполнение задачи.

Для некоторых получателей удаляется только имя. Это означает, что соответствующие записи остаются в системе, но при этом им присвоено состояние УДАЛЕНО.