Skip to main content

轻量级的 Django 定时任务调度框架,基于数据库锁实现进程/线程级调度与日志记录。

Project description

DjangoSched

轻量级的 Django 定时任务调度框架。基于 Django ORM 与线程/进程实现,支持:

  • 周期任务调度、任务运行日志(SchedulerLog)和锁竞争机制;
  • 嵌入式线程或独立进程运行调度器;
  • 与 Django Admin 集成查看调度器与运行日志。

核心实现与入口

快速开始

  1. 安装(在虚拟环境中):
pip install -e .
  1. 在 Django 项目里加入 django_schedINSTALLED_APPS(示例项目在 demo 中):
INSTALLED_APPS = [
    # ...
    'django_sched',
]
  1. 迁移并启动:
python manage.py migrate
python manage.py runserver

runservergunicorn 下,应用会通过 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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_sched-0.1.1-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

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

Hashes for django_sched-0.1.1.tar.gz
Algorithm Hash digest
SHA256 56dad893f81c2085b4e4d78c8961fe51bf413eead179918f26de06cd087ffc89
MD5 506875a1fbc12680f5c7b68af0b62e94
BLAKE2b-256 dcb2e9d13325ae55518307a49e57ddc8b63c426d7a4cf94ce5d6c92fe63d776d

See more details on using hashes here.

File details

Details for the file django_sched-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for django_sched-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cac6cad6ab885877541de3b74ae723019de7f078ac7e2777e3cc14938e40d624
MD5 566980b6be902d54dacc9db5a1d55fd9
BLAKE2b-256 b0c1872078ac5104effe974c14eab7fe7cdf931fb67fd35414c4049c09c8265c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page