https://red-engine.readthedocs.io/en/stable/index.html [ ] Toggle navigation sidebar [ ] Toggle in-page Table of Contents logo Red Engine: Advanced Scheduler [ ] Contents: * Tutorials [ ] + Quick start + Basic Tutorial + Intermediate Tutorial + Advanced Guide * Condition Syntax [ ] + Execution on fixed time interval + Fixed time interval + Timedelta + Task Status + Task Dependence * Examples * How it works? * Contributing * Version history Theme by the Executable Book Project * .rst * .pdf Contents * Red Engine + Why Red Engine? + Interested? * Indices and tables Red Engine Contents * Red Engine + Why Red Engine? + Interested? * Indices and tables Red Engine# https://badgen.net/pypi/v/redengine https://badgen.net/pypi/python/ redengine --------------------------------------------------------------------- No time to read? Get started then. Red Engine is a modern scheduling framework for Python applications. It is simple, clean and extensive. Key features: * Simple: productive and easy to set up * Clean: Scheduling is just plain English * Robust: Well tested and production ready * Extensive: Has a lot of built-in features * Customizable: Designed to be modified Core functionalities: * Powerful scheduling syntax * Task parallelization * Task parametrization * Task pipelining * Modifiable session also in runtime It looks like this: from redengine import RedEngine app = RedEngine() @app.task('daily') def do_things(): ... if __name__ == "__main__": app.run() Why Red Engine?# There are a lot of options for scheduler: * Crontab * APScheduler * Airflow Red Engine provides more features than Crontab and APScheduler and it is much easier to use than Airflow. Red Engine has by far the cleanest syntax compared to the alternatives and it is the most productive. Red Engine is not meant to be the scheduler for enterprise pipelines, unlike Airflow, but it is fantastic to power your Python applications. Here is a demonstration of more advanced case: from redengine import RedEngine from redengine.args import Return, Arg, FuncArg app = RedEngine() @app.cond('is foo') def is_foo(): "This is a custom condition" ... return True @app.task('daily & is foo', execution="process") def do_daily(): "This task runs once a day and runs on separate process" ... return ... @app.task("after task 'do_daily'") def do_after(arg1=Return('do_on_process')): """This task runs after 'do_daily' and it has its the return argument as an input""" ... if __name__ == "__main__": app.run() Interested?# Just install the library: pip install redengine There is much more to offer. See quick start And the rest tutorials. Contents: * Tutorials + Quick start o Installing o Minimal Example + Basic Tutorial o Time Scheduling o Execution Options o Changing Logging Destination + Intermediate Tutorial o Condition Logic o Pipelining with Conditions o Parameterize Tasks o Customizing Logging Handlers o Reading from the Logs + Advanced Guide o App Configuration o Task Types o Modifying the System on Runtime * Condition Syntax + Execution on fixed time interval + Fixed time interval + Timedelta + Task Status + Task Dependence * Examples * How it works? + Flow of the system + Task execution * Contributing * Version history Indices and tables# * Index next Tutorials By Mikael Koli (c) Copyright 2021, Mikael Koli.