Workers poll at ~1s max regardless of `poll_interval` setting

Aperta
#384 0 commenti 0 reazioni 1 assegnatario Vedi su GitHub

@v1r3n ci sta già lavorando.

Dal 19/4/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

bug

Overview

We wanted to slow down the poll interval for our workers to something like 5s to reduce the load on the servers, but noticed that they continued to poll at around a second. Using AI tools, it found an issue with the way the delays are being set. I had it write up an issue of what we're seeing. Let me know if there is a different way to handle this. Thanks!

Robot Description

Summary

Worker poll_interval values above ~1 second are effectively ignored. The exponential backoff logic in TaskRunner.run_once caps the exponent at 10, limiting the maximum delay between polls to 0.001 * 2^10 = 1.024 seconds regardless of the configured poll_interval.

Details

In task_runner.py, run_once calculates the polling delay with a capped exponent:

# Exponential backoff for empty polls (1ms, 2ms, 4ms, 8ms, up to poll_interval)
# Cap exponent at 10 to prevent overflow (2^10 = 1024ms = 1s)
capped_empty_polls = min(self._consecutive_empty_polls, 10)
min_poll_delay = min(0.001 * (2 ** capped_empty_polls), self.worker.get_polling_interval_in_seconds())

The comment says "up to poll_interval", but the backoff plateaus at ~1.024s because 0.001 * 2^10 = 1.024 is always less than any poll_interval above ~1 second. The min() call never selects poll_interval.

Impact

With workers configured at poll_interval=5000ms (5 seconds), we expected ~12 polls/min per worker but observed ~43 polls/min per worker, creating unnecessary load on our infrastructure.

Expected Behavior

When consecutive_empty_polls reaches steady state, the delay between polls should reach the full configured poll_interval value.

Suggested Fix

Either raise the exponent cap so the backoff can reach poll_interval, or call __wait_for_polling_interval() once the backoff has stabilized (e.g., when consecutive_empty_polls >= 10).

Environment

  • conductor-python version: 1.3.2
  • Python: 3.14
Lingua principale
Python
Stelle
104
Fork
43
Merge medio
1g 13h
PR unite (30g)
4

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di conductor-oss/python-sdk

Tutte le issue di conductor-oss/python-sdk

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.