[31e88f42] Erreicht: Die Stabilität des SuperOffice Connectors wurde maßgeblich verbessert, um Endlos-Schleifen bei der Job-Verarbeitung zu verhindern und die Dashboard-Anzeige zu optimieren. Die Verarbeitung relevanter Änderungen wurde präzisiert.
Erreicht: Die Stabilität des SuperOffice Connectors wurde maßgeblich verbessert, um Endlos-Schleifen bei der Job-Verarbeitung zu verhindern und die Dashboard-Anzeige zu optimieren. Die Verarbeitung relevanter Änderungen wurde präzisiert. Details der Implementierung: * Stabile Job-Verarbeitung (Poison Pill): Ein Poison Pill-Mechanismus wurde in queue_manager.py eingeführt. Jobs werden nun nach maximal 5 fehlgeschlagenen Versuchen automatisch als FAILED markiert. * Robuste SuperOffice API-Client-Authentifizierung: Die Fehlerbehandlung im superoffice_client.py wurde gehärtet. Authentifizierungsfehler und andere kritische API-Probleme lösen jetzt spezifische Exceptions aus. * Behebung des Worker-Startfehlers: Ein ImportError (ContactNotFoundException) im Worker wurde behoben. * Präzise Trigger-Logik: Eine Neubewertung von Accounts wird jetzt nur noch bei Änderungen an den Feldern name, urladdress, urls oder dem Vertical-UDF (SuperOffice:83) ausgelöst. * Korrekte Datumsanzeige im Dashboard: Die Dashboard-Formatierungslogik wurde angepasst, um updated_at-Zeitstempel anzuzeigen.
This commit is contained in:
31
connector-superoffice/kill_jobs.py
Normal file
31
connector-superoffice/kill_jobs.py
Normal file
@@ -0,0 +1,31 @@
|
||||
import sqlite3
|
||||
import sys
|
||||
|
||||
DB_PATH = "/data/connector_queue.db"
|
||||
|
||||
def kill_pending_jobs():
|
||||
"""Sets the status of stuck jobs to FAILED."""
|
||||
try:
|
||||
conn = sqlite3.connect(DB_PATH)
|
||||
cursor = conn.cursor()
|
||||
|
||||
query = """
|
||||
UPDATE jobs
|
||||
SET status = 'FAILED', error_msg = 'Manually failed by admin to clear queue.'
|
||||
WHERE status = 'PROCESSING' OR status = 'PENDING'
|
||||
"""
|
||||
|
||||
cursor.execute(query)
|
||||
changes = conn.total_changes
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
print(f"OK: Successfully marked {changes} jobs as FAILED.")
|
||||
return 0
|
||||
|
||||
except sqlite3.Error as e:
|
||||
print(f"ERROR: Could not update jobs. Reason: {e}")
|
||||
return 1
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(kill_pending_jobs())
|
||||
Reference in New Issue
Block a user