Skip to content

Running Workers

git-processor and pr-processor (already running from docker compose up) pick up queued repos automatically and import commit/PR stats into Postgres. issue-processor does the same for Jira data if you've configured it (see Jira Integration). Watch progress with:

docker compose logs -f git-processor pr-processor issue-processor

See Logs for what each JSON line means.

Scaling workers

There's no worker-count setting — git-processor and pr-processor each claim one repo at a time from the shared queue (FOR UPDATE SKIP LOCKED, so concurrent claims never collide), and by default docker compose up runs exactly one of each. To process more repos in parallel, run more instances with Compose's --scale:

docker compose up -d --scale git-processor=4 --scale pr-processor=4

Each replica still exits once the queue's empty and gets restarted independently by restart: unless-stopped, so the scale factor persists without further action. --max-attempts/--lease-minutes are per-repo, not per-worker, so scaling up doesn't change retry behavior — it just means more repos get claimed per pass.

Bitbucket Cloud and scaling

Be more cautious scaling pr-processor if you're importing from Bitbucket Cloud: it's known to temporarily block source IPs that get hit too aggressively. pr-processor throttles and backs off automatically, but that protection is per-worker-process, not coordinated across replicas — N scaled workers still add up to N× the request rate from this host's IP. GitHub/GitLab's limits are generous enough that this isn't a practical concern there.

Next: Generating Reports once some data's imported.