diff --git a/swh/scheduler/journal_client.py b/swh/scheduler/journal_client.py --- a/swh/scheduler/journal_client.py +++ b/swh/scheduler/journal_client.py @@ -43,7 +43,13 @@ }, f"Got unexpected {', '.join(set(messages) - set([msg_type]))} message types" assert msg_type in messages, f"Expected {msg_type} messages" - origin_visit_stats: Dict[Tuple[str, str], Dict] = {} + origin_visit_stats: Dict[Tuple[str, str], Dict] = { + (visit_stats.url, visit_stats.visit_type): attr.asdict(visit_stats) + for visit_stats in scheduler.origin_visit_stats_get( + [(vs["origin"], vs["type"]) for vs in messages[msg_type]] + ) + } + for msg_dict in messages[msg_type]: if msg_dict["status"] in ("created", "ongoing"): continue @@ -60,11 +66,7 @@ } pk = origin, visit_type if pk not in origin_visit_stats: - visit_stats = scheduler.origin_visit_stats_get([pk]) - origin_visit_stats[pk] = ( - attr.asdict(visit_stats[0]) if visit_stats else empty_object - ) - + origin_visit_stats[pk] = empty_object visit_stats_d = origin_visit_stats[pk] if msg_dict["status"] == "not_found":