Skip to content

Tishka17/clepsydra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Intro

Clepsydra is a mini framework for task scheduling

All parts are designed to be replaceable.

Main ideas are:

  • No pickle! Tasks are stored in readable format, so can be used outside of framework
  • Task creator doesn't need to know how tasks are implemented or executed
  • Persistence may be implemented
  • All workers must follow same async style: be either sync or async functions

Currently project is in the design stage and any APIs are to be changed

How to use:

Create scheduler (this step will be customizable). If your task functions as synchronous, pass param sync_executor=True

from clepsydra import create_scheduler

scheduler = create_scheduler() 

Register functions that can be scheduled (custom name can be provided for compatibility)

scheduler.task(some_func)

Add some job using function name. For example single run:

from clepsydra import SingleRun

job_id = await scheduler.add_job("some_func", rule=SingleRun(when=datetime.now()))

Run scheduler:

await scheduler.run()

Releases

No releases published

Packages

No packages published

Languages