通过django-background-tasks执行定时任务

发布时间 2023-04-21 14:07:32作者: SlookUP
1.安装 django-background-tasks
pip install django-background-tasks
2.在Django项目的 settings.py 文件中添加以app:
INSTALLED_APPS = [
    # other apps
    'background_task',
]
3.创建一个包含需要执行的任务函数:
from background_task import background
import random

@background(schedule=60)
def my_task():
    print(random.randrange(1, 100000000000000000000))

上述代码创建了一个名为 my_task 的任务函数,并将其调度为每 60 秒运行一次

4.在其他视图或函数中调用此任务函数:
from .tasks import my_task

def my_view(request):
    my_task(repeat=60) # execute the task every 60 seconds

在上面这个示例中,视图函数 my_view 调用任务函数 my_task,并将其计划为每 60 秒执行一次

5.最后,运行 Django 项目并调用 python manage.py process_tasks 即可在后台运行计划任务

如果需要每天固定时间运行定时任务,可以在Linux系统中结合crontab命令完成

1.打开终端并输入以下命令:
crontab -e
2.编辑 crontab 文件
0 23 * * * python /path/to/manage.py process_task

上述代码中,0 23 * * * 表示在每天的 23:00 运行命令,/path/to/manage.py 是 Django 项目的管理文件路径,process_tasks 是 django-background-tasks 库提供的用于运行后台任务的命令