Нужна помощь с моим запросом на пользовательский бейдж по триггеру

Всем привет,
Я застрял на своём SQL-запросе. Моя цель — чтобы он выдавал конкретный пользовательский бейдж сразу же, когда пользователь отвечает на определённую тему. Проблема в том, что я уже почти добился этого: ежедневная задача «Backfill» выполняется успешно, но более мгновенный эффект явно не работает.

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

Я какое-то время игнорировал эту проблему, но теперь готов сдаться и попросить помощи.

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

SELECT p.user_id, p.id post_id, p.created_at granted_at
FROM badge_posts p
WHERE p.topic_id = 11558
AND (:backfill OR p.id IN (:post_ids) )

Или я также пробовал:

SELECT
DISTINCT ON (p.user_id)
p.user_id, p.id post_id, p.created_at granted_at
FROM badge_posts p
WHERE p.topic_id = 11558 
AND(:backfill OR p.id IN (:post_ids) )

Оба варианта работают для ежедневного backfill, но не обеспечивают той оперативности, на которую я рассчитывал.

Ниже скриншот настроек бейджа в текущем состоянии.

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

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

Заранее спасибо!

Ещё не тестировал, но, думаю, триггер должен быть «Когда пользователь редактирует или создаёт пост»?

Кажется, тот, что у вас сейчас, срабатывает на лайки, флаги, закладки и т. д., а не при создании поста.

Редактирование: только что протестировал, у меня всё работает :slight_smile:

Оооо, я думал, что перепробовал все варианты этих настроек. Но только что проверил — именно это и помогло! Вы меня выручили!

Сколько месяцев я прятал голову в песок, как страус, а оказалось, что решение было таким простым!

Какой это был замечательный опыт.

Спасибо @chapoi

____

Для истории… вот это решение.

Хе-хе, пожалуйста!