Skip to content

chore: remove publisher/scheduler services, prune scripts/#58

Open
dotjae wants to merge 2 commits into
mainfrom
chore/cleanup-publisher-scheduler
Open

chore: remove publisher/scheduler services, prune scripts/#58
dotjae wants to merge 2 commits into
mainfrom
chore/cleanup-publisher-scheduler

Conversation

@dotjae
Copy link
Copy Markdown
Collaborator

@dotjae dotjae commented May 18, 2026

Summary

  • Deletes the standalone publisher/ and scheduler/ directories. Their GTFS-RT builder logic now lives in backend/schedule_engine/tasks.py (build_vehicle_positions, build_trip_updates), and the 15-second beat schedule lives in backend/databus/celery.py app.conf.beat_schedule — explicit in code rather than DB-backed.
  • Prunes scripts/ to the survivors: dev.sh, prod.sh, inspect_redis.py, cleanup_redis.py. Removes continuous_simulator.py and redis_seed_data.py (superseded by the external simulator/ repo, which publishes MQTT telemetry to the telemetry-broker), the one-off rename_operation_to_operations.sql, and the per-dir pyproject.toml/uv.lock.
  • Output path for generated feeds aligned to backend/feed/files/ per build-gtfs-realtime spec.
  • Dev infra: sets PYTHONPYCACHEPREFIX=/tmp/pycache on the four backend services so each container writes bytecode to its own ephemeral path. Without this, the four containers race to rewrite .pyc files in the bind-mounted source tree whenever a heavily-imported file changes, surfacing as OSError: [Errno 35] Resource deadlock avoided on startup. .gitignore updated to drop the obsolete publisher/feed/files/ entries and ignore the new backend/feed/files/*.pb/.json outputs.

Test plan

  • docker compose -f compose.dev.yml config parses without publisher or scheduler service entries.
  • bash scripts/dev.sh starts cleanly; no crash-loops, no EDEADLK during Django startup.
  • From the orchestrator container: from schedule_engine.tasks import build_vehicle_positions, build_trip_updates imports without error and build_vehicle_positions.delay() enqueues against schedule_engine queue.
  • After ~15 s of uptime, backend/feed/files/ contains vehicle_positions.{json,pb} and trip_updates.{json,pb}.
  • git grep -nE 'publisher/|scheduler/' returns nothing meaningful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant