轻量级的 Django 定时任务调度框架,基于数据库锁实现进程/线程级调度与日志记录。
Project description
DjangoSched
轻量级的 Django 定时任务调度框架。基于 Django ORM 与线程/进程实现,支持:
- 周期任务调度、任务运行日志(
SchedulerLog)和锁竞争机制; - 嵌入式线程或独立进程运行调度器;
- 与 Django Admin 集成查看调度器与运行日志。
核心实现与入口
- 调度器实现:
django_sched.sched.Scheduler - 启动入口:
django_sched.sched.start_scheduler - 应用自动启动:
django_sched.apps.DjangoSchedConfig.ready(在runserver或gunicorn下自动启动) - 模型:
django_sched.models.Scheduler、django_sched.models.SchedulerLog - 管理后台:
django_sched.admin.SchedulerAdmin - 信号:
django_sched.signals.scheduler_init
快速开始
- 安装(在虚拟环境中):
pip install -e .
- 在 Django 项目里加入
django_sched到INSTALLED_APPS(示例项目在demo中):
INSTALLED_APPS = [
# ...
'django_sched',
]
- 迁移并启动:
python manage.py migrate
python manage.py runserver
在 runserver 或 gunicorn 下,应用会通过 DjangoSchedConfig.ready() 自动尝试启动调度器(可在日志中看到启动/竞态信息)。详情见 django_sched.apps.DjangoSchedConfig.ready。
以编程方式启动(例如在管理命令中):
from django_sched.sched import start_scheduler
# 在当前进程中以嵌入方式启动(会阻塞)
start_scheduler(embedded_process=True)
# 或作为线程/进程嵌入
start_scheduler(thread=True)
注意事项
- 锁机制基于数据库表
django_sched_scheduler,当检测到上次持有进程心跳过期时会尝试接管锁; - 默认 timezone 配置会影响锁过期与日志时间,请根据项目配置调整;
- Admin 页面禁止手动新增/修改/删除日志。
贡献与授权
- 许可:MIT(见 LICENSE)
- 欢迎提 issue / PR
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
django_sched-0.1.1.tar.gz
(10.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_sched-0.1.1.tar.gz.
File metadata
- Download URL: django_sched-0.1.1.tar.gz
- Upload date:
- Size: 10.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56dad893f81c2085b4e4d78c8961fe51bf413eead179918f26de06cd087ffc89
|
|
| MD5 |
506875a1fbc12680f5c7b68af0b62e94
|
|
| BLAKE2b-256 |
dcb2e9d13325ae55518307a49e57ddc8b63c426d7a4cf94ce5d6c92fe63d776d
|
File details
Details for the file django_sched-0.1.1-py3-none-any.whl.
File metadata
- Download URL: django_sched-0.1.1-py3-none-any.whl
- Upload date:
- Size: 11.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cac6cad6ab885877541de3b74ae723019de7f078ac7e2777e3cc14938e40d624
|
|
| MD5 |
566980b6be902d54dacc9db5a1d55fd9
|
|
| BLAKE2b-256 |
b0c1872078ac5104effe974c14eab7fe7cdf931fb67fd35414c4049c09c8265c
|