Расхождения в webhook topic_posts_count

Мы используем вебхук Discourse Post Event (при создании нового ответа, редактировании, удалении или восстановлении поста). Когда в теме публикуется пост (комментарий), отправляется вебхук, и мы используем эту информацию для обновления данных на стороне WordPress.

Я заметил, что вебхук не передаёт точные данные в полях topic_filtered_posts_count или topic_posts_count после удаления некоторых постов в теме. Счётчики работают корректно, пока комментарии только добавляются или редактируются. Однако, как только удаляется один или несколько комментариев, эти значения начинают отклоняться на небольшие величины (но непредсказуемо: иногда на единицу, иногда на две и т. д.).

Мы изучили содержимое вебхуков, чтобы понять, где именно кроется проблема — на стороне WordPress или Discourse. Оказалось, что вебхуки передают неверную информацию. Иногда даже возникает расхождение между topic_posts_count и topic_filtered_posts_count в ситуациях, когда все посты имеют архетип :regular и на данный момент нет удалённых постов.

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

2 лайка

Я наткнулся на это, изучая данную проблему:

Я создал PR, который исправляет это:

4 лайка