APScheduler integration for aetherflow-core.
Project description
aetherflow-scheduler
aetherflow-scheduler is a thin cron-style scheduler for AetherFlow, built on APScheduler.
It reads a YAML file and triggers aetherflow runs on a schedule. The design goal is simplicity:
- Core stays run-once and deterministic
- Scheduler is the run-on-cron wrapper
This distribution ships the CLI aetherflow-scheduler.
Install
pip install aetherflow-scheduler
This depends on aetherflow-core and installs it automatically.
Python: 3.10+.
CLI
aetherflow-scheduler --help
aetherflow-scheduler run path/to/scheduler.yaml
Scheduler YAML (schema)
Top-level keys:
timezone(string, optional): timezone name (IANA tz database). Default:"Europe/Berlin".items(list, required): list of scheduled items
Each item:
id(string, required): APScheduler job idcron(string, required): crontab expression (e.g."0 * * * *")flow_yaml(string, required): path to a flow YAML fileflow(string, optional): flow id inside the YAMLflow_job(string, optional): job id within the flowbundle_manifest(string, optional): bundle manifest path (sync before run)allow_stale_bundle(bool, optional): defaultfalsemisfire_grace_time(int seconds, optional): default300
Example:
timezone: Europe/Berlin
items:
- id: hourly_sales
cron: "0 * * * *"
flow_yaml: "flows/sales.yaml"
flow: "sales_flow"
flow_job: "main"
bundle_manifest: "bundles/sales_bundle.yaml"
allow_stale_bundle: true
misfire_grace_time: 600
Run it:
aetherflow-scheduler run scheduler.yaml
Overlap prevention and reliability
AetherFlow itself can use locks/state to avoid overlapping executions and to support recovery patterns. Scheduler is intentionally minimal: it triggers runs; the “safety” lives in core.
Relevant docs:
Namespace package rule (important)
AetherFlow is a PEP 420 implicit namespace across distributions.
Use:
import aetherflow.schedulerimport aetherflow.corefrom aetherflow.core.api import ...
Do not rely on ambiguous imports like aetherflow.x.
Docs (in this repository)
Scheduler-specific doc:
Start here:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aetherflow_scheduler-0.0.14.tar.gz.
File metadata
- Download URL: aetherflow_scheduler-0.0.14.tar.gz
- Upload date:
- Size: 8.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c036c343080b9ee7360ff821ea2be3390f8c9e720f50922ae38fc4c1425c524
|
|
| MD5 |
664695095b1c0469e7499ea2e1605be5
|
|
| BLAKE2b-256 |
35aa6beca4b2494ac8e2f27a28348810d6eac6c96b241ef44c8392cbda2b5614
|
File details
Details for the file aetherflow_scheduler-0.0.14-py3-none-any.whl.
File metadata
- Download URL: aetherflow_scheduler-0.0.14-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2c58bc4061ec850207ece211a845a5383505e5e3361d67f5acf3373aea43b1e
|
|
| MD5 |
a1398076404444442087b09742da75c3
|
|
| BLAKE2b-256 |
8cf179144975c9b2e1b3a5f41976a68208d6d73cf982911739823e78f0aca952
|