UppgifterLink to this heading

Uppgiftsramverket tillhandahåller avtalet och infrastrukturen för bakgrundsarbete, inte motorn som kör det. API:t för uppgifter definierar hur arbete beskrivs, köas och spåras, men lämnar den faktiska körningen till extern infrastruktur.

UppgiftsdefinitionLink to this heading

Dekoratorn taskLink to this heading

task(*, priority=0, queue_name='default', backend='default', takes_context=False, **kwargs)Link to this definition

Dekoratorn @task definierar en Task-instans. Alla nyckelordsargument skickas direkt till serverdelens task_class (som har Task som standard).

Följande standardargument stöds:

  • priority: Anger priority för Task. Standardvärdet är 0.

  • queue_name: Anger queue_name för Task. Standardvärdet är "default".

  • backend: Anger backend för Task. Standardvärdet är "default".

  • takes_context: Styr om funktionen Task accepterar en TaskContext. Standardvärdet är False. Mer information finns i uppgiftskontext.

Anpassade uppgiftsserverdelar kan definiera en anpassad task_class som accepterar ytterligare argument. De kan skickas via dekoratorn @task:

Code
@task(foo=5, bar=600)
def my_task():
    pass

Om den definierade Task inte är giltig enligt serverdelen utlöses InvalidTask.

Användningsexempel finns i defining tasks.

TaskLink to this heading

class TaskLink to this definition

Representerar en Task som ska köras i bakgrunden. Uppgifter ska definieras med dekoratorn task().

Attribut för Task kan inte ändras. Mer information finns i modifying Tasks.

priorityLink to this definition

Prioriteten för Task. Prioriteter måste vara mellan -100 och 100, där högre tal ger högre prioritet och körs tidigare.

Serverdelen måste ha supports_priority satt till True för att använda den här funktionen.

backendLink to this definition

Aliaset för den serverdel som Task ska köas till. Det måste matcha en serverdel som definieras i BACKEND.

queue_nameLink to this definition

Namnet på kön som Task ska köas till. Standardvärdet är "default". Det måste matcha en kö som definieras i QUEUES, om inte QUEUES är satt till [].

run_afterLink to this definition

Den tidigaste tidpunkt då Task körs. Det kan vara en timedelta, som används relativt den aktuella tiden, en tidszonsmedveten datetime, eller None om tiden inte är begränsad. Standardvärdet är None.

Det här attributet kan anges med using().

Serverdelen måste ha supports_defer satt till True för att använda den här funktionen. Annars utlöses InvalidTask.

nameLink to this definition

Namnet på funktionen som har dekorerats med task(). Namnet är inte nödvändigtvis unikt.

using(*, priority=None, backend=None, queue_name=None, run_after=None)Link to this definition

Skapar en ny Task med ändrade standardvärden. Den befintliga Task lämnas oförändrad.

using gör det möjligt att ändra följande attribut:

Användningsexempel finns i modifying Tasks.

enqueue(*args, **kwargs)Link to this definition

Köar Task till serverdelen för Task för senare körning.

Argument skickas till funktionen för Task efter en rundresa genom en cykel med json.dumps()/json.loads(). Därför måste alla argument kunna JSON-serialiseras och behålla sin typ efter rundresan.

Om Task inte är giltig enligt serverdelen utlöses InvalidTask.

Användningsexempel finns i enqueueing Tasks.

aenqueue(*args, **kwargs)Link to this definition

Den async-variant av enqueue.

get_result(result_id)Link to this definition

Hämtar ett resultat efter dess id.

Om resultatet inte finns utlöses TaskResultDoesNotExist. Om resultatet inte har samma typ som den aktuella uppgiften utlöses TaskResultMismatch. Om serverdelen inte har stöd för get_result() utlöses NotImplementedError.

aget_result(*args, **kwargs)Link to this definition

Den async-variant av get_result.

UppgiftskontextLink to this heading

class TaskContextLink to this definition

Innehåller kontext för den körande Task. Kontext skickas endast till en Task om den definierades med takes_context=True.

Attribut för TaskContext kan inte ändras.

task_resultLink to this definition

Den TaskResult som för närvarande körs.

attemptLink to this definition

Antalet aktuella körningsförsök för den här uppgiften, med start på 1.

UppgiftsresultatLink to this heading

class TaskResultStatusLink to this definition

En Enum som representerar statusen för en TaskResult.

READYLink to this definition

Task har just köats eller är redo att köras igen.

RUNNINGLink to this definition

Task körs för närvarande.

FAILEDLink to this definition

Task utlöste ett undantag under körningen eller kunde inte starta.

SUCCESSFULLink to this definition

Task har körts färdigt utan fel.

class TaskResultLink to this definition

TaskResult lagrar informationen om en specifik körning av en Task.

Attribut för TaskResult kan inte ändras.

taskLink to this definition

Task som resultatet köades för.

idLink to this definition

En unik identifierare för resultatet som kan skickas till Task.get_result().

Formatet för id beror på den serverdel som används. Id:n för uppgiftsresultat är alltid strängar med färre än 64 tecken.

Mer information finns i uppgiftsresultat.

statusLink to this definition

Statusen för resultatet.

enqueued_atLink to this definition

Tidpunkten då Task köades.

started_atLink to this definition

Tidpunkten då Task började köras vid sitt första försök.

last_attempted_atLink to this definition

Tidpunkten då den senaste körningen av Task började köras.

finished_atLink to this definition

Tidpunkten då Task kördes färdigt, oavsett om den misslyckades eller lyckades.

backendLink to this definition

Serverdelen som resultatet kommer från.

errorsLink to this definition

En lista med instanser av TaskError för de fel som utlöstes som en del av varje körning av uppgiften.

return_valueLink to this definition

Returvärdet från funktionen Task.

Om Task inte kördes färdigt utan fel utlöses ValueError.

Användningsexempel finns i return values.

refresh()Link to this definition

Uppdatera resultatets attribut från kölagret.

arefresh()Link to this definition

Den async-variant av TaskResult.refresh().

is_finishedLink to this definition

Om Task har körts färdigt, oavsett om det lyckades eller inte.

attemptsLink to this definition

Antalet gånger som uppgiften har körts.

Om uppgiften för närvarande körs räknas den inte som ett försök.

worker_idsLink to this definition

Id:n för de arbetare som har kört uppgiften.

UppgiftsfelLink to this heading

class TaskErrorLink to this definition

Innehåller information om det fel som utlöstes under körningen av en Task.

tracebackLink to this definition

Återspårningen (som en sträng) från undantaget som utlöstes när Task misslyckades.

exception_classLink to this definition

Undantagsklassen som utlöstes vid körningen av Task.

ServerdelarLink to this heading

Serverdelar hanterar hur uppgifter lagras och körs. Alla serverdelar delar ett gemensamt gränssnitt som definieras av BaseTaskBackend och anger kärnmetoderna för att köa uppgifter och hämta resultat.

Grundläggande serverdelLink to this heading

class BaseTaskBackendLink to this definition

BaseTaskBackend är basklassen för alla uppgiftsserverdelar.

task_classLink to this definition

Den underklass till Task som ska användas när uppgifter skapas med dekoratorn task(). Standard är Task. Anpassade serverdelar kan åsidosätta detta för att använda en anpassad underklass av Task med ytterligare attribut.

optionsLink to this definition

En ordbok med extra parametrar för uppgiftsserverdelen. Dessa anges med inställningen OPTIONS.

enqueue(task, args, kwargs)Link to this definition

Uppgiftsserverdelar som är underklasser till BaseTaskBackend ska åtminstone implementera denna metod.

När metoden implementeras köar enqueue() task, en Task-instans, för senare körning. args är positionsargumenten och kwargs är nyckelordsargumenten som ska skickas till task. Returnerar en TaskResult.

aenqueue(task, args, kwargs)Link to this definition

Varianten async av BaseTaskBackend.enqueue().

get_result(result_id)Link to this definition

Hämta ett resultat med dess id. Om resultatet inte finns utlöses TaskResultDoesNotExist.

Om serverdelen inte stöder get_result() utlöses NotImplementedError.

aget_result(result_id)Link to this definition

Varianten async av BaseTaskBackend.get_result().

validate_task(task)Link to this definition

Kontrollerar om den angivna Task kan köas med serverdelen. Om uppgiften inte är giltig utlöses InvalidTask.

FunktionsflaggorLink to this heading

Vissa serverdelar kanske inte stöder alla funktioner som Django tillhandahåller. Det går att identifiera vilka funktioner en serverdel stöder och eventuellt ändra beteendet därefter.

BaseTaskBackend.supports_deferLink to this definition

Om serverdelen stöder att köa uppgifter som ska köras efter en viss tid med attributet run_after.

BaseTaskBackend.supports_async_taskLink to this definition

Om serverdelen stöder att köa asynkrona funktioner (korutiner).

BaseTaskBackend.supports_get_resultLink to this definition

Om serverdelen stöder att hämta Task-resultat från en annan tråd efter att de har köats.

BaseTaskBackend.supports_priorityLink to this definition

Om serverdelen stöder att köra uppgifter i den ordning som deras priority anger.

Tabellen nedan anger vilka av de inbyggda serverdelarna som stöder vilka funktioner:

Tillgängliga serverdelarLink to this heading

Django innehåller endast serverdelar för utveckling och testning. De stöder lokal körning och inspektion. För serverdelar redo för produktion, se Konfigurera en uppgiftsbackend.

Omedelbar serverdelLink to this heading

class ImmediateBackendLink to this definition

Den omedelbara serverdelen kör uppgifter omedelbart i stället för i bakgrunden.

Dummy backendLink to this heading

class DummyBackendLink to this definition

Den fiktiva serverdelen kör inte köade uppgifter. I stället lagrar den uppgiftsresultat för senare inspektion.

resultsLink to this definition

En lista med resultat för de kölagda Tasks, i den ordning de kölades.

clear()Link to this definition

Rensar listan över lagrade resultat.

UndantagLink to this heading

exception InvalidTaskLink to this definition

Utlöses när den Task som försöker köas är ogiltig.

exception InvalidTaskBackendLink to this definition

Utlöses när den begärda BaseTaskBackend är ogiltig.

exception TaskResultDoesNotExistLink to this definition

Utlöses av get_result() när angivet result_id inte finns.

exception TaskResultMismatchLink to this definition

Utlöses av get_result() när angivet result_id tillhör en annan Task än den aktuella Task.

Fotnoter