Ich hab schon in einem früheren Post geschrieben, dass wir Social Publisher jeden Tag selbst benutzen. Was ich nicht erwähnt hab: manchmal fliegt einem das auch um die Ohren.
Vor ein paar Wochen ist mir aufgefallen, dass mein eigener LinkedIn-Post plötzlich doppelt in meinem Profil stand. Wortgleich, Sekunden auseinander. Erste Reaktion: kurzer Herzstillstand. Zweite Reaktion: Logs auf.
Die Ursache war unspektakulär und genau deshalb tückisch: Unser Queue-Prozessor läuft minütlich per Cron und holt sich offene Jobs aus der Datenbank. Wenn ein Durchlauf länger braucht als eine Minute — zum Beispiel weil die LinkedIn-API mal etwas langsamer antwortet — startet der nächste Cron-Lauf, bevor der erste fertig ist. Beide greifen sich denselben Job, beide posten ihn.
Der Fix war simpel, sobald ich wusste wonach ich suche: ein Lock um die Queue-Verarbeitung, der einen zweiten gleichzeitigen Durchlauf blockiert. Seit dem Fix ist das Problem weg.
Was ich daraus mitnehme: Ich hätte diesen Bug in keinem Testszenario gefunden. Er brauchte echte Last, echte Timing-Zufälle — also genau die Bedingungen, die nur entstehen, wenn ein System im echten Betrieb läuft. Deshalb bleibt „wir benutzen unser eigenes Plugin täglich“ für mich keine Marketing-Floskel, sondern der eigentliche Grund, warum Social Publisher stabiler wird.
Wenn euch mal ein doppelter Post auffällt — bei uns ist das inzwischen Geschichte. Aber falls nicht: sagt Bescheid, wir lesen mit.
Schreibe einen Kommentar