运行 Django 应用程序中周期性任务的清晰分步过程

A clear step by step process for running a periodic task in a django application

我一直在尝试在 Django 中创建一个周期性任务,但是有很多版本限制并且没有一个明确的解释。

我推荐Celery。什么是 Celery

Celery 支持调度任务。检查 this doc

首先,您想按照本指南创建一个管理命令。 https://docs.djangoproject.com/en/2.1/howto/custom-management-commands/

假设我们想要每 5 分钟 运行 示例中的 closepoll 命令。 然后,您需要为 运行 此命令创建一个脚本。

Linux / MacOS:

#!/bin/bash -e
cd path/to/your/django/project
source venv/bin/activate  # if you use venv
python manage.py closepoll  # maybe you want to >> /path/to/log so you can log the results

在命令行中将文件存储为 run_closepoll.sh、运行 chmod +x run_closepoll.sh

现在我们可以使用 crontab 来运行我们的命令

运行 crontab -e 在你的命令行 添加此行: */5 * * * * /path/to/run_closepoll.sh 现在该命令将每 5 分钟 运行。 如果你不熟悉 crontab,你可以使用这个网站 https://crontab-generator.org/

Windows:

Same content as the above example, but remove the first line and save as run_closepoll.bat

在您的开始菜单中,搜索 Task Scheduler,按照 GUI 上的说明操作,从那里开始应该非常简单。

有关任务计划程序的详细信息,请参阅此处:https://docs.microsoft.com/en-us/windows/desktop/taskschd/using-the-task-scheduler

这篇博客解释的很清楚

https://medium.com/@yehandjoe/celery-4-periodic-task-in-django-9f6b5a8c21c7

谢谢!!!