我一直在尝试在Django中创建定期任务,但是版本约束很多,没有明确的解释。
答案 0 :(得分:2)
答案 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)