
Refactored `run_server` to accept explicit config and SSL paths. Added dynamic environment-based config loading and stricter SSL path checks for production. Updated `docker-compose.yml` to use environment variable for port mapping and adjusted `config_prod.json` to reflect correct port usage.
26 lines
698 B
Python
26 lines
698 B
Python
from fastapi import APIRouter, Depends
|
|
from sqlalchemy.orm import Session
|
|
from starlette.responses import StreamingResponse
|
|
import asyncio
|
|
import json
|
|
|
|
from app.models import JobStatus, Jobs as JobModel
|
|
from app.dependencies import get_db
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
async def job_event_generator(db):
|
|
while True:
|
|
jobs = db.query(JobModel).filter(JobModel.status == JobStatus.TODO).all()
|
|
|
|
if jobs:
|
|
yield json.dumps([job.parameters for job in jobs]) + "\n\n"
|
|
await asyncio.sleep(5)
|
|
|
|
|
|
@router.get("/jobs/stream")
|
|
async def stream_jobs(db: Session = Depends(get_db)):
|
|
# test
|
|
return StreamingResponse(job_event_generator(db), media_type="text/event-stream")
|