后台任务创建任务和处理完成的任务

问题描述

我正在使用 django-background-tasks 将数据从 API 读取到我的数据库中。 cronjob 每 15 分钟启动一次 python manage.py process_tasks 并处理队列中的作业。任务看起来像:

@background(schedule = 900)
def API_2_DB()
    ....
    return None

现在是第一个问题: 那么,如何可靠地创建将在页面“未使用”时完成的任务?

第二个问题:数据库正在存储已完成的任务 - 我知道我可以在某处使用 CompletedTasks.objects.all().delete() 轻松删除它们 - 但是否没有内置的自动机制?

解决方法

由于我需要四处看看,而且 Stackoverflow 是我解决 django 相关问题的主要来源,所以我想我分享了我学到的知识,以防有人在这里寻找相同的问题:

在应用程序内的 task.py 中创建任务后,您可以定期调用该任务,而没有用户处于活动状态,从项目 urls.py 中调用它:

urls.py:

from django.contrib import admin
from django.urls import path,include
from django.views.generic.base import RedirectView

urlpatterns = [
    path('home/',RedirectView.as_view(url='/')),path('admin/',admin.site.urls),path('',include('APPName.urls')),]

from APPName.tasks import API_2_DB

API_2_DB(repeat=100,repeat_until=None)