Why Rocketry?
Contents
Rocketry
The engine to power your Python apps
No time to read? Get started then.
Rocketry 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
A lot of built-in scheduling options
Task parallelization
Task parametrization
Task pipelining
Modifiable session also in runtime
Async support
It looks like this:
from rocketry import Rocketry
app = Rocketry()
@app.task('daily')
def do_things():
...
if __name__ == "__main__":
app.run()
Dislike the syntax?
You can also use the condition API instead of the string syntax:
from rocketry import Rocketry
from rocketry.conds import daily
app = Rocketry()
@app.task(daily)
def do_things():
...
if __name__ == "__main__":
app.run()
Why Rocketry?#
There are a lot of options for scheduler:
Crontab
APScheduler
Airflow
Rocketry provides more features than Crontab and APScheduler and it is much easier to use than Airflow. Rocketry has by far the cleanest syntax compared to the alternatives and it is the most productive.
Rocketry is the automation backend that sets your applications alive. It has customization built into it and it is possible to build really complex systems that are can self update, self restart and interact with users. And all of these are easy to implement.
Here is a demonstration of more advanced case:
from rocketry import Rocketry
from rocketry.args import Return, Arg, FuncArg
app = Rocketry()
@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 rocketry
There is much more to offer. See quick start and get started with tutorials. There are also handbooks to check options and details.