fix: replace duplicate submissions while refilling queues
This commit is contained in:
@@ -17,6 +17,7 @@ from outcome_tracker import DEFAULT_OUTCOMES_PATH, OutcomeTracker
|
||||
from runner_common import DEFAULT_KEY_PATH, ensure_tokens
|
||||
from submission_claims import DEFAULT_CLAIMS_PATH
|
||||
from template_selector import TemplateSelector
|
||||
from version import AGENT_VERSION
|
||||
|
||||
|
||||
DEFAULT_POLL_RUNS_DIR = Path("poll_runs")
|
||||
@@ -122,7 +123,7 @@ def run_poll_loop(
|
||||
OUTCOME_SYNC_INTERVAL = 3
|
||||
STATS_PRINT_INTERVAL = 10
|
||||
|
||||
log(f"[poll] poll_run_dir={poll_run_dir}")
|
||||
log(f"[poll] version={AGENT_VERSION} poll_run_dir={poll_run_dir}")
|
||||
log(
|
||||
f"[poll] target={base_args.daily_target} dry_run={str(bool(base_args.dry_run)).lower()} "
|
||||
f"poll_interval={base_args.poll_interval_seconds}s idle_interval={base_args.idle_interval_seconds}s"
|
||||
@@ -165,6 +166,7 @@ def run_poll_loop(
|
||||
|
||||
log(
|
||||
f"[poll] cycle_done submitted_total={cycle_summary['submittedTotal']} "
|
||||
f"duplicates={cycle_summary.get('duplicateTotal', 0)} "
|
||||
f"remaining_before_run={remaining_before_run if remaining_before_run is not None else 'n/a'} "
|
||||
f"stop={cycle_summary['stoppedReason']}"
|
||||
)
|
||||
@@ -174,8 +176,14 @@ def run_poll_loop(
|
||||
break
|
||||
|
||||
if cycle_summary["submittedTotal"] <= 0:
|
||||
log(f"[poll] cycle={cycles} sleep={base_args.idle_interval_seconds}s reason=no_new_submissions")
|
||||
time.sleep(base_args.idle_interval_seconds)
|
||||
duplicate_total = int(cycle_summary.get("duplicateTotal", 0) or 0)
|
||||
if duplicate_total > 0 and (available_slots is None or available_slots > 0):
|
||||
retry_delay = max(1, int(getattr(base_args, "post_cycle_cooldown_seconds", 2) or 2))
|
||||
log(f"[poll] cycle={cycles} sleep={retry_delay}s reason=duplicates_need_replacement_candidates")
|
||||
time.sleep(retry_delay)
|
||||
else:
|
||||
log(f"[poll] cycle={cycles} sleep={base_args.idle_interval_seconds}s reason=no_new_submissions")
|
||||
time.sleep(base_args.idle_interval_seconds)
|
||||
continue
|
||||
|
||||
if cycles % OUTCOME_SYNC_INTERVAL == 0:
|
||||
|
||||
Reference in New Issue
Block a user