Async crontab like scheduler
Project description
Introduction
This is an asynchronous job scheduler with crontab syntax.
How to use
Here is a basic example
# Should run as-is
import time
import asyncio
from typing import Any
from functools import partial
from timewheel import TimeWheel
from timewheel.schedule import Schedule
async def my_job():
print("hello from job!")
await asyncio.sleep(3)
async def my_another_job(some_value: Any):
print(f"Hey! This is my some_value {some_value}")
await asyncio.sleep(1)
def my_sync_job():
print("Hello from the sync job")
time.sleep(10)
async def main():
timewheel = TimeWheel(schedules=[
# Runs every 29 minutes
Schedule("my-schedule", "*/29 * * * *", my_job),
# Runs every 5th, 10th and 20th minute on wednesday
Schedule("another-schedule", "5,10,20 * * * 2", my_job),
# Runs every 10 minutes
Schedule("my-schedyle-with-fixed-param", "*/10 * * * *", partial(my_another_job,
{"some_value": "My value"})),
# Runs every minute
Schedule("a-sync-job", "* * * * *", my_sync_job)])
await timewheel.run()
asyncio.get_event_loop().run_until_complete(main())
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
Built Distribution
Close
Hashes for timewheel-scheduler-0.0.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5074184d519fdbdb28d7925f09a7c35f7121a5a3ec9416936fec8a0fc4b1ec4 |
|
MD5 | 603965160fa8d1dc6068ba69cc62635c |
|
BLAKE2b-256 | a052af6d96bb5fe2e2bde8494d3fe93a7ef284d28ddd5e819f6790bc586d0b02 |
Close
Hashes for timewheel_scheduler-0.0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00068270be0715effdb9c0a85e55770fa6b0537a35fa0cbaf942f760824795de |
|
MD5 | bfc0e9814d6147309d6ec44163950f51 |
|
BLAKE2b-256 | b252d24a025a27a72e0b451b11d9ef8d3e22e3788582af5c637e33f1691e83d1 |