Skip to main content

flask-crontab

Simple Flask scheduled tasks without extra daemons

PyPI PyPI - Python Version Github Action Supported Platforms

This project is strongly inspired by django-crontab, and only works on Python 3.5+. Due to the coming EOL of Python 2 on 2020/01/01, there is no plan for Python 2 support.

Quick Start

Install via pip:

$ pip install flask-crontab

Instantiate the extension in your app.py after the creation of Flask app:

from flask import Flask
from flask_crontab import Crontab

app = Flask(__name__)
crontab = Crontab(app)

If you are using App Factory pattern, you can also register the extension later:

crontab = Crontab()

def create_app():
    ...
    crontab.init_app(app)

Now create a scheduled job:

@crontab.job(minute="0", hour="6")
def my_scheduled_job():
    do_something()

An app context is automatically activated for every job run, so that you can access objects that are attached to app context. Then add the job to crontab:

$ flask crontab add

That's it! If you type in crontab -l in your shell, you can see some new lines created by flask-crontab.

Show jobs managed by current app:

$ flask crontab show

Purge all jobs managed by current app:

$ flask crontab remove

Run a specific job given by hash:

$ flask crontab run <job_hash>

See supported options via --help for every commands.

Decorator API

def job(
    minute: str = "*",
    hour: str = "*",
    day: str = "*",
    month: str = "*",
    day_of_week: str = "*",
    args: Tuple[Any, ...] = (),
    kwargs: Optional[Dict[str, Any]] = None,
) -> Callable:

The decorator accepts five arguments minute, hour, day, month, day_of_month, which are the same as crontab 5-parts time format. Any part that is not given defaults to *. Besides, job decorator accepts args and kwargs which will be passed to the decorated function as positional arguments and keywords arguments, respectively.

Configuration

Config item Description Default value
CRONTAB_EXECUTABLE The absolute path of crontab /usr/bin/crontab
CRONTAB_LOCK_JOBS Whether lock jobs when running False

License

This project is publised under MIT license.

Metadata

Release files for flask-crontab 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flask-crontab 0.1.2
File Size Uploaded
flask-crontab-0.1.2.tar.gz 6.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for flask-crontab 0.1.2
File Interpreter ABI Platform
flask_crontab-0.1.2-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 13.7 kB

Release files / flask-crontab-0.1.2.tar.gz

Download URL flask-crontab-0.1.2.tar.gz
Size 6.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ec38074d7b5237df31b406576e9ccc79c924d8363dcba4e857830c4ec63a1185
BLAKE2b-256 checksum
How to use checksums
a38dbb417566d4890769fc5c1dd6d7ffd2e2d6cfa65b9005060661714e76ccc1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.40.1 CPython/3.7.4

Release files / flask_crontab-0.1.2-py2.py3-none-any.whl

Download URL flask_crontab-0.1.2-py2.py3-none-any.whl
Size 6.9 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
8dbb325417d9c04d13c94f1f933c97267e0ef7a4358e08057dbb9910f0145188
BLAKE2b-256 checksum
How to use checksums
7ab53d691df17797770ab531f8fd43b8ac99c40b8163baae1aa7bc7701bcc6d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.40.1 CPython/3.7.4

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page