一个清晰的分步过程,用于在Django应用程序中运行定期任务

时间:2019-02-12 04:08:47

标签: django scheduling periodic-task

我一直在尝试在Django中创建定期任务,但是版本约束很多,没有明确的解释。

3 个答案:

答案 0 :(得分:2)

我推荐Celery。什么是Celery

Celery支持计划任务。选中this doc

答案 1 :(得分:1)

首先,您要按照本指南创建管理命令。 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

答案 2 :(得分:1)