트리거된 사용자 지정 배지 쿼리에 도움이 필요합니다

여러분 안녕하세요,
SQL 쿼리에 막혀 있습니다. 제 목표/기대치는 사용자가 특정 주제에 답글을 달면 즉시 특정 커스텀 배지가 발급되도록 하는 것입니다. 문제는 일일 “백필(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) )

두 쿼리 모두 EOD(일일) 백필에서는 작동하지만, 제가 기대하는 즉각성이 부족합니다.

현재 배지에 설정된 설정의 스크린샷입니다.

에러 로그를 확인하면 쿼리를 처음 구현했을 때의 백필 실패 로그가 보이지만, 사용자가 게시물을 작성할 때 쿼리가 실패했다는 로그는 보이지 않습니다.

아마도 제가 뻔한 것을 놓치고 있는 것 같지만, 이 시점에서는 눈이 빠질 것 같게까지 들여다보았으니 여러분 중 한 분께서 저를 불쌍히 여겨 몇 가지 힌트를 주시거나… 아니면 도움이 되는 문서를 알려주셨으면 좋겠습니다.

미리 감사합니다!

아직 테스트는 안 해 봤지만, 트리거는 **“사용자가 게시글을 수정하거나 생성할 때”**가 되어야 하지 않을까요?

지금 설정해 놓은 건 좋아요, 신고, 북마크 같은 것에서 발동되고, 게시글 생성 시에는 발동되지 않는 것 같습니다.

수정: 방금 테스트해 봤는데 제 환경에서는 잘 동작합니다 :slight_smile:

아, 정말! 그 설정들의 모든 조합을 시도해 봤다고 생각했거든요. 하지만 방금 테스트해보니 그게 바로 원인이었네요! 덕분에 해결됐어요!

수개월 동안 마치 부엉이처럼 머리를 모래에 파묻고 있다가, 이렇게 단순한 해결책이었네요!

정말 멋진 경험이었습니다.

@chapoi 님, 감사합니다.

____

기록을 위해… 이게 해결책이었어요.

허허, 아무 일도 아니에요!