Мы используем API уведомлений Discourse и запросы Data Explorer и наблюдаем поведение консолидации/группировки уведомлений для:
-
уведомлений о ответах/комментариях (
notification_type = 2) -
уведомлений о реакциях (
notification_type = 25)
Наблюдаемое поведение
-
Даже при наличии всего 2 ответов/комментариев в одной теме/посте в течение короткого промежутка времени уведомления консолидируются/группируются.
-
Отдельные строки уведомлений создаются не всегда для второго действия.
-
Существующие строки уведомлений, по-видимому, обновляются/заменяются вместо вставки новых строк.
-
Более старые строки уведомлений иногда исчезают из таблицы
notifications. -
Уведомления о реакциях также консолидируются аналогичным образом.
-
В интерфейсе могут отображаться сгруппированные счетчики, например «2 ответа», в то время как в базе данных/API отражается только одна строка уведомления.
Мы обнаружили следующие настройки:
-
linked notifications consolidation window mins -
likes notification consolidation window mins -
notification_consolidation_threshold
Вопросы
-
Относятся ли эти настройки только к группировке в интерфейсе, или они также контролируют консолидацию уведомлений на уровне базы данных/API?
-
Поскольку уведомления консолидируются даже при наличии всего 2 действий, переиспользует ли Discourse или обновляет ли существующие строки уведомлений внутренне до достижения порога консолидации?
-
Существует ли поддерживаемый способ полностью отключить консолидацию уведомлений, чтобы каждый ответ/реакция создавал отдельную запись уведомления?
-
Предназначена ли таблица
notificationsдля того, чтобы не быть только добавляемой (non-append-only) для связанных уведомлений и уведомлений о реакциях? -
Для уведомлений о реакциях (
notification_type = 25) существует ли надежный поддерживаемый способ определить пользователя, поставившего реакцию, из полезной нагрузки уведомления или через API?
Мы в основном пытаемся понять предполагаемое поведение системы уведомлений и поддерживаются ли полностью независимые уведомления для каждого действия.