mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-08 03:08:45 +00:00
APScheduler anchors an interval job at now + interval, so every scheduled background job registered in one proxy startup shares a single firing instant for the life of the process, and every replica a rollout brought up together shares that instant too. Each tick the spend flushes, budget reset sweep, config-in-DB reload, credential reload and cost pollers all hit Postgres at the same moment, on every pod, competing with request-path auth and budget queries. Shift each eligible job by a deterministic offset derived from sha256(job_id, identity), where identity covers the pod and the worker process. The offset lives in the trigger rather than in a one-off next_run_time, because a cron trigger recomputes each fire from the wall clock and would otherwise snap straight back onto the shared instant. An interval job is never offset by more than one of its own periods. Only schedules LiteLLM chose are shifted: interval jobs always, cron jobs only when the id is one of the product's own defaults, so an operator-supplied crontab keeps the instant it asks for. general_settings.scheduled_job_stagger turns it off, widens the window, replaces the identity, or pins a job. The applied offsets are logged once at startup and each fire logs its scheduled instant against its actual start. Resolves LIT-5433 |
||
|---|---|---|
| .. | ||
| public | ||
| scripts | ||
| src | ||
| tests | ||
| .env.development | ||
| .env.production | ||
| .npmrc | ||
| .nvmrc | ||
| .prettierignore | ||
| .prettierrc | ||
| build_release_ui.sh | ||
| build_ui.sh | ||
| build_ui_custom_path.sh | ||
| CLAUDE.md | ||
| components.json | ||
| eslint-budgets.json | ||
| eslint-suppressions.json | ||
| eslint.config.mjs | ||
| knip.json | ||
| next.config.mjs | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.js | ||
| README.md | ||
| tsconfig.json | ||
| tsconfig.tsbuildinfo | ||
| vitest.config.ts | ||
This is a Next.js project bootstrapped with create-next-app.
Getting Started
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Inter, a custom Google Font.
Learn More
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
Deploy on Vercel
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.