Changeset View
Changeset View
Standalone View
Standalone View
swh/scheduler/backend.py
Show First 20 Lines • Show All 763 Lines • ▼ Show 20 Lines | def origin_visit_stats_upsert( | ||||
self, visit_stats: OriginVisitStats, db=None, cur=None | self, visit_stats: OriginVisitStats, db=None, cur=None | ||||
) -> None: | ) -> None: | ||||
query = """ | query = """ | ||||
INSERT into origin_visit_stats AS ovi ( | INSERT into origin_visit_stats AS ovi ( | ||||
url, | url, | ||||
visit_type, | visit_type, | ||||
last_eventful, | last_eventful, | ||||
last_uneventful, | last_uneventful, | ||||
last_failed | last_failed, | ||||
last_snapshot | |||||
) | ) | ||||
VALUES (%s, %s, %s, %s, %s) ON CONFLICT (url, visit_type) DO | VALUES (%s, %s, %s, %s, %s, %s) ON CONFLICT (url, visit_type) DO | ||||
UPDATE | UPDATE | ||||
SET last_eventful = coalesce( | SET last_eventful = coalesce( | ||||
excluded.last_eventful, | excluded.last_eventful, | ||||
ovi.last_eventful | ovi.last_eventful | ||||
), | ), | ||||
last_uneventful = coalesce( | last_uneventful = coalesce( | ||||
excluded.last_uneventful, | excluded.last_uneventful, | ||||
ovi.last_uneventful | ovi.last_uneventful | ||||
), | ), | ||||
last_failed = coalesce( | last_failed = coalesce( | ||||
excluded.last_failed, | excluded.last_failed, | ||||
ovi.last_failed | ovi.last_failed | ||||
), | |||||
last_snapshot = coalesce( | |||||
excluded.last_snapshot, | |||||
ovi.last_snapshot | |||||
) | ) | ||||
""" | """ | ||||
cur.execute( | cur.execute( | ||||
query, | query, | ||||
( | ( | ||||
visit_stats.url, | visit_stats.url, | ||||
visit_stats.visit_type, | visit_stats.visit_type, | ||||
visit_stats.last_eventful, | visit_stats.last_eventful, | ||||
visit_stats.last_uneventful, | visit_stats.last_uneventful, | ||||
visit_stats.last_failed, | visit_stats.last_failed, | ||||
visit_stats.last_snapshot, | |||||
), | ), | ||||
) | ) | ||||
@db_transaction() | @db_transaction() | ||||
def origin_visit_stats_get( | def origin_visit_stats_get( | ||||
self, url: str, visit_type: str, db=None, cur=None | self, url: str, visit_type: str, db=None, cur=None | ||||
) -> Optional[OriginVisitStats]: | ) -> Optional[OriginVisitStats]: | ||||
query = format_query( | query = format_query( | ||||
Show All 10 Lines |