Red Engine#

https://badgen.net/pypi/v/redengine https://badgen.net/pypi/python/redengine

NOTE: Red Engine has been renamed as Rocketry

Warning

This documentation is out of date. The project continues under: https://rocketry.readthedocs.io


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_daily')):
    """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.

Indices and tables#