Celery worker that asynchronously loads static GTFS feeds into the database
  • Python 93.8%
  • Dockerfile 4.5%
  • Makefile 1.7%
Find a file
Max Katz-Christy 1deff09595
All checks were successful
Build / build (push) Successful in 17s
feat: add max static gtfs file size
Closes gtfs.zone/deploy-gtfs-rt#43
2026-03-11 01:44:33 +01:00
.forgejo/workflows ci: add build script 2026-03-10 17:12:34 +01:00
src/worker feat: add max static gtfs file size 2026-03-11 01:44:33 +01:00
.env feat: initial commit 2026-03-08 21:56:45 +01:00
.pre-commit-config.yaml build: default pre-commit 2026-03-10 15:02:54 +01:00
CLAUDE.md refactor: rename api to cafe-car 2026-03-10 14:37:32 +01:00
Dockerfile build: use git for railroad-club 2026-03-10 04:47:42 +01:00
LICENSE.txt docs: add agpl-3 2026-03-10 14:44:50 +01:00
Makefile build: cp origin/main 2026-03-10 17:28:20 +01:00
pyproject.toml refactor: use railroad-club 2026-03-10 03:35:37 +01:00
README.md refactor: rename api to cafe-car 2026-03-10 14:37:32 +01:00
uv.lock build: use git for railroad-club 2026-03-10 04:47:42 +01:00

schedule-foamer

Celery worker that downloads GTFS static feeds, parses them, and writes to PostgreSQL tables managed by cafe-car.

Quick start

cp .env.example .env
# Edit .env with your DATABASE_URL and Redis URLs
uv sync
uv run pre-commit install   # install git hooks (required once per clone)
uv run celery -A worker.celery_app worker -l info

Development commands

# Install git hooks (required once per clone)
uv run pre-commit install

uv run ruff check src/          # lint
uv run ruff check --fix src/    # lint + autofix

Docker

Built and run as part of cafe-car's docker-compose:

cd ../cafe-car
docker compose up --build

Tasks

Task Description
worker.tasks.load_feed Download and parse a single GTFS feed by ID
worker.tasks.refresh_all_feeds Enqueue load_feed for every feed (runs daily at 02:00 UTC)
worker.tasks.ensure_all_feeds_scheduled Re-enqueue feeds with no status or failed status (runs every minute)