Monitor FastAPI Background Tasks with CronRabbit

FastAPI

The Problem

FastAPI background tasks and attached schedulers (like APScheduler or Celery) can fail without notification. Async errors may be silently swallowed.

The Solution

Add CronRabbit pings inside your background task functions using httpx or aiohttp for async compatibility.

Async Integration

Use httpx (async HTTP client) for non-blocking pings inside FastAPI's async context.

Code Examples

FastAPI with APScheduler monitoring

Python
from fastapi import FastAPI
from apscheduler.schedulers.asyncio import AsyncIOScheduler
import httpx

app = FastAPI()
scheduler = AsyncIOScheduler()

PING = "https://ping.cronrabbit.com/your-id"

@scheduler.scheduled_job("cron", hour=2)
async def nightly_cleanup():
    async with httpx.AsyncClient(timeout=10) as client:
        await client.get(f"{PING}/start")
        try:
            await cleanup_expired_data()
            await client.get(PING)
        except Exception:
            await client.get(f"{PING}/fail")
            raise

@app.on_event("startup")
def start_scheduler():
    scheduler.start()

Ready to Monitor Your Cron Jobs?

Create your free account and add your first monitor in under 5 minutes. No credit card required.