sync-v2 step 1: worker roles + interactive/bulk queue split
- config: WORKER_ROLE (sync|jobs|all), INTERACTIVE_CONCURRENCY, BULK_CONCURRENCY. - queue: named queues (interactive/bulk) + enqueue_job() router; sync_bootstrap goes to bulk, all other jobs to interactive. - workers.run: single entrypoint; role=jobs runs both arq consumers (per-queue timeout/concurrency), role=sync runs the supervisor, all=both (dev default). - docker-compose: worker-sync + worker-jobs services (shared image, nofile ulimit); backend/Dockerfile; Makefile worker/worker-sync/worker-jobs targets. - tests repointed to app.queue.get_arq_pool; supervisor behavior unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -9,8 +9,12 @@ reset-db: ## DESTRUCTIVE: wipe db + search + blobs, re-migrate
|
||||
cd backend && alembic upgrade head
|
||||
api:
|
||||
uvicorn app.main:create_app --factory --reload --port 8000 --app-dir backend
|
||||
worker:
|
||||
cd backend && arq workers.worker.WorkerSettings
|
||||
worker: ## run both sync + jobs in one process (dev)
|
||||
cd backend && WORKER_ROLE=all python -m workers.run
|
||||
worker-sync: ## run only the account-sync supervisor
|
||||
cd backend && WORKER_ROLE=sync python -m workers.run
|
||||
worker-jobs: ## run only the arq job consumers (interactive + bulk)
|
||||
cd backend && WORKER_ROLE=jobs python -m workers.run
|
||||
web:
|
||||
cd frontend && npm run dev
|
||||
test:
|
||||
|
||||
Reference in New Issue
Block a user