无需额外守护进程的简单Flask定时任务
项目描述
flask-crontab
无需额外守护进程的简单Flask定时任务
本项目深受 django-crontab 启发,仅在Python 3.5+上运行。由于Python 2将在2020/01/01停止支持,因此没有计划支持Python 2。
快速入门
通过pip
安装
$ pip install flask-crontab
在创建Flask应用之后,在您的app.py
中实例化该扩展
from flask import Flask
from flask_crontab import Crontab
app = Flask(__name__)
crontab = Crontab(app)
如果您正在使用App Factory模式,您也可以稍后注册该扩展
crontab = Crontab()
def create_app():
...
crontab.init_app(app)
现在创建一个定时任务
@crontab.job(minute="0", hour="6")
def my_scheduled_job():
do_something()
每个任务运行时都会自动激活应用上下文,因此您可以访问附加到应用上下文的对象。然后将其添加到crontab
$ flask crontab add
就这样!如果您在shell中输入crontab -l
,您将看到由flask-crontab
创建的一些新行。
显示当前应用管理的任务
$ flask crontab show
清除当前应用管理的所有任务
$ flask crontab remove
运行给定哈希的特定任务
$ flask crontab run <job_hash>
通过--help
查看每个命令的支持选项。
装饰器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:
该装饰器接受五个参数minute
、hour
、day
、month
、day_of_month
,它们与crontab 5部分时间格式相同。任何未提供部分的默认值均为*
。此外,job
装饰器接受args
和kwargs
,它们将分别作为位置参数和关键字参数传递给装饰的函数。
配置
配置项 | 描述 | 默认值 |
---|---|---|
CRONTAB_EXECUTABLE | crontab 的绝对路径 |
/usr/bin/crontab |
CRONTAB_LOCK_JOBS | 运行时是否锁定任务 | False |
许可证
本项目采用MIT许可证发布。
项目详情
关闭
flask-crontab-0.1.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ec38074d7b5237df31b406576e9ccc79c924d8363dcba4e857830c4ec63a1185 |
|
MD5 | bf106443c3908edd1aa9cd132a4b3052 |
|
BLAKE2b-256 | a38dbb417566d4890769fc5c1dd6d7ffd2e2d6cfa65b9005060661714e76ccc1 |
关闭
flask_crontab-0.1.2-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8dbb325417d9c04d13c94f1f933c97267e0ef7a4358e08057dbb9910f0145188 |
|
MD5 | 5ba0d16628143ed1c80f92d4a3cc3088 |
|
BLAKE2b-256 | 7ab53d691df17797770ab531f8fd43b8ac99c40b8163baae1aa7bc7701bcc6d6 |