CLAUDE.md: document local time scheduling and JAVA_HOME deploy behavior
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
a6cc8da83f
commit
ba48b2ca2b
@ -118,7 +118,7 @@ Recreated on every run as `pipekit_staging.{module_name}` (DROP + CREATE, not IF
|
||||
|
||||
## Scheduler
|
||||
|
||||
`pipekit/scheduler.py` runs a single daemon thread (started via FastAPI lifespan in `api/app.py`). It wakes every 60 s, reads all enabled schedules, and fires `run_group` for any whose next cron occurrence has passed since `last_fired_at`. `last_fired_at` is written to the DB before the run thread is spawned — prevents double-fire if a run is slow or pipekit restarts mid-run. Uses `croniter` for cron expression evaluation.
|
||||
`pipekit/scheduler.py` runs a single daemon thread (started via FastAPI lifespan in `api/app.py`). It wakes every 60 s, reads all enabled schedules, and fires `run_group` for any whose next cron occurrence has passed since `last_fired_at`. `last_fired_at` is written to the DB before the run thread is spawned — prevents double-fire if a run is slow or pipekit restarts mid-run. Uses `croniter` for cron expression evaluation. Cron expressions are evaluated in **local server time** (not UTC) — `0 4 * * *` fires at 04:00 local.
|
||||
|
||||
## API vs. Web
|
||||
|
||||
@ -133,7 +133,7 @@ Recreated on every run as `pipekit_staging.{module_name}` (DROP + CREATE, not IF
|
||||
- Python 3.10+, FastAPI, Uvicorn, Jinja2, PyYAML, SQLite3 (stdlib), croniter
|
||||
- `python-multipart` required for HTML form POSTs (not auto-installed as a FastAPI transitive dep)
|
||||
- Frontend: HTMX (CDN) + vanilla JS; Alpine.js is NOT loaded despite being listed in older docs
|
||||
- jrunner: separate Java tool, must be on PATH
|
||||
- jrunner: separate Java tool, must be on PATH; `JAVA_HOME` must also be set — `deploy.sh` detects and injects it into the systemd unit automatically
|
||||
- Runs as the `pipekit` system user; venv at `/opt/pipekit/.venv` owned by that user; secrets at `/etc/pipekit/secrets.env` (mode 0640, group pipekit)
|
||||
|
||||
## Full Spec
|
||||
|
||||
Loading…
Reference in New Issue
Block a user