Production-ready scheduler with async, multithreading and multiprocessing support.
Project description
regta
Production-ready scheduler with async, multithreading and multiprocessing support for Python.
Core Features
-
Various Job Types - Create async, thread-based, or process-based jobs depending on your goals.
-
Flexible Intervals - Use standard
timedeltaor specially designedPeriodfor highly responsible jobs. -
Multi-Paradigm - Design OOP styled or functional styled jobs.
-
CLI Interface - Regta provides a CLI tool to start, list and create jobs by template.
-
Professional Logging - Redefine standard logger and define your own. ANSI coloring is supported.
You may discover scheduling alternatives and find the comparison with Regta on regta.alinsky.tech/alternatives
Installation
Install using pip install regta or poetry add regta.
If you use python < 3.9, then also install backports: pip install "backports.zoneinfo[tzdata]".
You can check if Regta was installed correctly with the following command regta --version.
Example
To write async job just use @regta.async_job() decorator.
# jobs/my_jobs.py
from datetime import timedelta
from regta import async_job, Period
@async_job(Period().every(10).seconds)
async def my_period_based_job():
return "1. Hello world! This is just a log message."
@async_job(timedelta(seconds=10))
async def my_timedelta_based_job():
return "2. You may use `timedelta` or `Period` as interval."
@async_job(Period().on.sunday.at("18:35").by("Asia/Almaty"))
async def my_sunday_job():
return "3. `Period` is recommended for highly responsible jobs because it does not accumulate shift."
Read more about various job types here.
Start Up
To start jobs use regta run command:
$ regta run
> [3] jobs were found.
> 2023-01-08 18:31:00,005 [jobs.my_jobs:my_period_based_job] [INFO] - 1. Hello world! This is just a log message.
> 2023-01-08 18:31:05,622 [jobs.my_jobs:my_timedelta_based_job] [INFO] - 2. You may use `timedelta` or `Period` as interval.
. . .
> 2023-01-08 18:34:50,002 [jobs.my_jobs:my_period_based_job] [INFO] - 1. Hello world! This is just a log message.
> 2023-01-08 18:34:55,689 [jobs.my_jobs:my_timedelta_based_job] [INFO] - 2. You may use `timedelta` or `Period` as interval.
> 2023-01-08 18:35:00,001 [jobs.my_jobs:my_sunday_job] [INFO] - 3. `Period` is recommended for highly responsible jobs because it does not accumulate shift.
. . .
Read CLI reference here.
Full documentation and reference are available on regta.alinsky.tech
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 regta-0.3.0.tar.gz.
File metadata
- Download URL: regta-0.3.0.tar.gz
- Upload date:
- Size: 13.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.2 CPython/3.7.9 Darwin/22.2.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d887a27723378f7922b7d8e3b8cf2c0fa1a38f3423a0f6dece31ab6d51431b1c
|
|
| MD5 |
2f394f1c3a582cc3c3d848f058b44da1
|
|
| BLAKE2b-256 |
a1819c2720c6301507be966d25022aa7a6de6be6ec4d0dbef322a0ec618f21b2
|
File details
Details for the file regta-0.3.0-py3-none-any.whl.
File metadata
- Download URL: regta-0.3.0-py3-none-any.whl
- Upload date:
- Size: 15.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.2 CPython/3.7.9 Darwin/22.2.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89305991cb139b375ba2f90ff30a686015bdeffcdd11569750f187b4447dafb8
|
|
| MD5 |
70abe6f77d98169626378d8b77aeeeb5
|
|
| BLAKE2b-256 |
1babad82e704e8b8c66263ddf9383ef0c186495c956745852451051366fe7ba5
|