跳转到主要内容

一个允许您安排和取消安排工作的包

项目描述

创建两个命令 schedulejobunschedulejob,允许您安排(和取消安排)后台作业。

如果您有一系列要在后端启动的作业(例如,如果您需要每小时更新您的社交动态),只需编写作业代码,用 schedulable 装饰器标记它,然后作业就可以通过 schedulejob 命令安排。

目前,该库使用 django-rq + rq-scheduler,但对 django-rq 的依赖性不是必需的,并将很快被删除。

如何使用

  1. 使用 pip install django_schedulermanager 安装库

  2. django_schedulermanager.apps.DjangoSchedulerManagerConfig 添加到您的 INSTALLED_APPS

  3. 在名为 'jobs' 的模块中编写您的作业代码(请记住将应用程序添加到 INSTALLED_APPS 列表中)

  4. 导入 schedulable 注解: from django_schedulermanager.decorators import schedulable

  5. 使用 schedulable 标记您的函数。您可以传递以下参数给装饰器

    • interval:函数的间隔。必需。

    • scheduled_time:函数第一次启动的时间。必需。它是一个函数。

    • repeat:不是必需的,默认为 None,表示“总是重复”

    • id:作业的 ID。它也将是您在调用 (un)schedulejob 时必须传递的作业名称。不是必需的,默认为 None,表示“使用函数名称”

    • queue:要使用的队列。默认为“default”

现在您可以使用 python manage.py schedulejob <id>python manage.py unschedulejob <id> 来安排和取消安排您的作业!在您的初始化脚本中调用这些命令,您的作业应该会自动安排(和取消安排)

有关示例,请参阅 test-project 目录。如果您想测试项目,请克隆存储库并运行命令 make testproject,它将在 test-project 文件夹中复制 django_schedulermanager 文件夹(库代码)

待办事项

  • [ ] 移除对 django-rq 的依赖

  • [ ] 如果存在,则从 @job 注解中读取“queue”

  • [ ] 添加 unschedulejob all 来取消安排所有作业

  • [ ] 添加一个命令,用于删除所有在 jobs.py 文件中没有函数的已安排作业

项目详情


下载文件

下载适合您平台的文件。如果您不确定要选择哪个,请了解更多关于 安装包 的信息。

源分布

django_schedulermanager-1.0.1.tar.gz (4.6 kB 查看哈希值)

上传时间

由以下赞助

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面