Skip to main content

APScheduler integration for aetherflow-core.

Project description

aetherflow-scheduler

GitHub Repo TestPyPI Version PyPI Version

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 id
  • cron (string, required): crontab expression (e.g. "0 * * * *")
  • flow_yaml (string, required): path to a flow YAML file
  • flow (string, optional): flow id inside the YAML
  • flow_job (string, optional): job id within the flow
  • bundle_manifest (string, optional): bundle manifest path (sync before run)
  • allow_stale_bundle (bool, optional): default false
  • misfire_grace_time (int seconds, optional): default 300

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.scheduler
  • import aetherflow.core
  • from aetherflow.core.api import ...

Do not rely on ambiguous imports like aetherflow.x.


Docs (in this repository)

Scheduler-specific doc:

Start here:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aetherflow_scheduler-0.0.14.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aetherflow_scheduler-0.0.14-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

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

Hashes for aetherflow_scheduler-0.0.14.tar.gz
Algorithm Hash digest
SHA256 3c036c343080b9ee7360ff821ea2be3390f8c9e720f50922ae38fc4c1425c524
MD5 664695095b1c0469e7499ea2e1605be5
BLAKE2b-256 35aa6beca4b2494ac8e2f27a28348810d6eac6c96b241ef44c8392cbda2b5614

See more details on using hashes here.

File details

Details for the file aetherflow_scheduler-0.0.14-py3-none-any.whl.

File metadata

File hashes

Hashes for aetherflow_scheduler-0.0.14-py3-none-any.whl
Algorithm Hash digest
SHA256 b2c58bc4061ec850207ece211a845a5383505e5e3361d67f5acf3373aea43b1e
MD5 a1398076404444442087b09742da75c3
BLAKE2b-256 8cf179144975c9b2e1b3a5f41976a68208d6d73cf982911739823e78f0aca952

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page