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
@taskdefinierar enTask-instans. Alla nyckelordsargument skickas direkt till serverdelenstask_class(som harTasksom standard).Följande standardargument stöds:
priority: AngerpriorityförTask. Standardvärdet är 0.queue_name: Angerqueue_nameförTask. Standardvärdet är"default".backend: AngerbackendförTask. Standardvärdet är"default".takes_context: Styr om funktionenTaskaccepterar enTaskContext. Standardvärdet ärFalse. Mer information finns i uppgiftskontext.
Anpassade uppgiftsserverdelar kan definiera en anpassad
task_classsom accepterar ytterligare argument. De kan skickas via dekoratorn@task:@task(foo=5, bar=600) def my_task(): passOm den definierade
Taskinte är giltig enligt serverdelen utlösesInvalidTask.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
Taskkan 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_prioritysatt tillTrueför att använda den här funktionen.
- backendLink to this definition
Aliaset för den serverdel som
Taskska köas till. Det måste matcha en serverdel som definieras iBACKEND.
- queue_nameLink to this definition
Namnet på kön som
Taskska köas till. Standardvärdet är"default". Det måste matcha en kö som definieras iQUEUES, om inteQUEUESär satt till[].
- run_afterLink to this definition
Den tidigaste tidpunkt då
Taskkörs. Det kan vara entimedelta, som används relativt den aktuella tiden, en tidszonsmedvetendatetime, ellerNoneom tiden inte är begränsad. Standardvärdet ärNone.Det här attributet kan anges med
using().Serverdelen måste ha
supports_defersatt tillTrueför att använda den här funktionen. Annars utlösesInvalidTask.
- 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
Taskmed ändrade standardvärden. Den befintligaTasklämnas oförändrad.usinggör det möjligt att ändra följande attribut:Användningsexempel finns i modifying Tasks.
- enqueue(*args, **kwargs)Link to this definition
Köar
Tasktill serverdelen förTaskför senare körning.Argument skickas till funktionen för
Taskefter en rundresa genom en cykel medjson.dumps()/json.loads(). Därför måste alla argument kunna JSON-serialiseras och behålla sin typ efter rundresan.Om
Taskinte är giltig enligt serverdelen utlösesInvalidTask.Användningsexempel finns i enqueueing Tasks.
- aenqueue(*args, **kwargs)Link to this definition
Den
async-variant avenqueue.
- 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ösesTaskResultMismatch. Om serverdelen inte har stöd förget_result()utlösesNotImplementedError.
- aget_result(*args, **kwargs)Link to this definition
Den
async-variant avget_result.
UppgiftskontextLink to this heading
- class TaskContextLink to this definition
Innehåller kontext för den körande
Task. Kontext skickas endast till enTaskom den definierades medtakes_context=True.Attribut för
TaskContextkan inte ändras.- task_resultLink to this definition
Den
TaskResultsom 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
Taskhar just köats eller är redo att köras igen.
- RUNNINGLink to this definition
Taskkörs för närvarande.
- FAILEDLink to this definition
Taskutlöste ett undantag under körningen eller kunde inte starta.
- SUCCESSFULLink to this definition
Taskhar körts färdigt utan fel.
- class TaskResultLink to this definition
TaskResultlagrar informationen om en specifik körning av enTask.Attribut för
TaskResultkan inte ändras.- taskLink to this definition
Tasksom 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
Statusenför resultatet.
- enqueued_atLink to this definition
Tidpunkten då
Taskköades.
- started_atLink to this definition
Tidpunkten då
Taskbörjade köras vid sitt första försök.
- last_attempted_atLink to this definition
Tidpunkten då den senaste körningen av
Taskbörjade köras.
- finished_atLink to this definition
Tidpunkten då
Taskkö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
TaskErrorfö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
Taskinte kördes färdigt utan fel utlösesValueError.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 avTaskResult.refresh().
- is_finishedLink to this definition
Om
Taskhar 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
Taskmisslyckades.
- 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
Tasksom ska användas när uppgifter skapas med dekoratorntask(). Standard ärTask. Anpassade serverdelar kan åsidosätta detta för att använda en anpassad underklass avTaskmed 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
BaseTaskBackendska åtminstone implementera denna metod.När metoden implementeras köar
enqueue()task, enTask-instans, för senare körning.argsär positionsargumenten ochkwargsär nyckelordsargumenten som ska skickas tilltask. Returnerar enTaskResult.
- aenqueue(task, args, kwargs)Link to this definition
Varianten
asyncavBaseTaskBackend.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ösesNotImplementedError.
- aget_result(result_id)Link to this definition
Varianten
asyncavBaseTaskBackend.get_result().
- validate_task(task)Link to this definition
Kontrollerar om den angivna
Taskkan köas med serverdelen. Om uppgiften inte är giltig utlösesInvalidTask.
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
priorityanger.
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
Tasksom 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 angivetresult_idinte finns.
- exception TaskResultMismatchLink to this definition
Utlöses av
get_result()när angivetresult_idtillhör en annan Task än den aktuella Task.
Fotnoter