皆さん、こんにちは。
SQLクエリで行き詰まっています。私の目標/期待は、ユーザーが特定のトピックに返信したときに、すぐに特定のカスタムバッジを付与することです。問題は、日次の「バックフィル」ジョブは成功するものの、より即時の効果が機能していないため、途中で止まっていることです。
私たちのフォーラムでは、このバッジを利用して(オートメーションプラグインの助けを借りて)他のカテゴリへのアクセスを提供しているため、終業時/バックフィル時の遅延は新規ユーザーにとって非常に混乱を招き、参加時の勢いや熱意を確実に削いでしまいます。
しばらくこの問題を無視していましたが、もう限界なので助けを求めることにしました。
クエリは、素晴らしい投稿 Creating triggered custom badge queries から流用したもので、ほとんどの人には見慣れたものだと思います。
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) )
どちらも終業時のバックフィルでは機能しますが、期待している即時性がありません。
現在のバッジの設定をスクリーンショットに示します。
エラーログを確認すると、クエリを最初に実装したときのバックフィル失敗のログがいくつかありますが、ユーザーが投稿したときにクエリが失敗したことに関するログは見当たりません。
おそらく単純なことを見落としているだけだと思いますが、もう目がかすむほど凝視してしまったので、誰かが私に同情してヒントをくれるか、少なくとも役立つドキュメントを教えてくれることを願っています。
よろしくお願いします!

