Hallo zusammen,
ich stecke bei meiner SQL-Abfrage fest. Mein Ziel / meine Erwartung ist, dass sie einem Benutzer sofort ein bestimmtes benutzerdefiniertes Abzeichen verleiht, wenn dieser auf ein bestimmtes Thema antwortet. Die Sache ist die, dass ich auf halbem Weg bin, da der tägliche „Backfill“-Job erfolgreich ist, obwohl der unmittelbarere Effekt eindeutig nicht funktioniert.
Unser Forum nutzt das Abzeichen, um Zugriff auf andere Kategorien zu gewähren (mit etwas Hilfe des Automatisierungs-Plugins). Daher ist die Verzögerung durch den Tagesabschluss/Backfill für neue Benutzer ziemlich desorientierend und nimmt ihnen definitiv etwas Schwung und Enthusiasmus beim Beitritt.
Ich habe das Problem eine Weile ignoriert, bin aber jetzt bereit, aufzugeben und um Hilfe zu bitten.
Ich habe die Abfrage im Grunde aus dem ausgezeichneten Beitrag Creating triggered custom badge queries übernommen, daher wird sie den meisten Leuten ziemlich bekannt vorkommen.
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) )
oder ich habe auch versucht
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) )
Beide funktionieren für den EOD-Backfill, aber ihnen fehlt die sofortige Wirkung, die ich erwarte.
Hier ist ein Screenshot der Einstellungen, wie sie derzeit für das Abzeichen festgelegt sind.
Wenn ich die Fehlerprotokolle überprüfe, sehe ich einige Backfill-Fehlerprotokolle von dem Zeitpunkt, als ich die Abfrage zum ersten Mal implementiert habe, aber ich sehe keine Protokolle bezüglich eines Fehlschlagens der Abfrage, wenn ein Benutzer postet.
Ich übersehe wahrscheinlich nur etwas Offensichtliches, aber ich habe mir die Augen ausgequetscht, daher hoffe ich, dass einer von euch Mitleid mit mir hat und mir ein paar Hinweise gibt … oder mich zumindest auf hilfreiche Dokumentationen hinweist.
Vielen Dank im Voraus!

