0Pricing
Flask Academy · Урок

Определение и вызов задачи

Напишите задачу и запустите её с помощью delay.

«Определение и вызов задачи» — бесплатный урок Flask Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Flask Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Flask Academy содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

What a Task Is

A Celery task is just a Python function marked so workers can run it later. You decorate it once and it becomes enqueueable.

The task Decorator

Mark a function with the Celery task decorator. Now it has extra methods like delay that schedule it onto the queue.

@celery.task
def add(x, y):
    return x + y

Call It Normally vs Queued

Calling add(2, 3) runs it right now in your process. To run it on a worker instead, you call its delay method.

Enqueue with delay

The delay shortcut puts the job on the broker and returns immediately. The work happens later on a worker.

add.delay(2, 3)

apply_async for Options

Need more control like a countdown or queue name? Use apply_async, which takes args plus scheduling options.

add.apply_async(args=[2, 3], countdown=10)

You Get an AsyncResult

Both delay and apply_async return an AsyncResult. It carries the task id you use to look up the result later.

job = add.delay(2, 3)
print(job.id)

Arguments Must Serialize

Task arguments travel through the broker, so they must be serializable: use plain data like ints, strings, lists, and dicts.

Pass IDs, Not Objects

Do not send a database row to a task. Send its id instead, then re-fetch the object inside the task with a fresh session.

Enqueue Inside a View

A view validates input, enqueues the job, and returns a fast response. The user is not kept waiting for the slow part.

@app.post("/report")
def report():
    add.delay(2, 3)
    return {"status": "queued"}

Name Tasks Clearly

Give tasks descriptive names like send_welcome_email. Clear names make logs and the broker dashboard far easier to read. 🔍

Keep Tasks Small

A good task does one clear job. Small, focused tasks are easier to retry, monitor, and reason about when something breaks.

Quick Check

You want a function to run on a worker.

Recap

Decorate a function as a task, call delay or apply_async to queue it, pass serializable args, and enqueue from thin views. ✅

Часто задаваемые вопросы

Урок «Определение и вызов задачи» бесплатный?

Да — полный текст урока «Определение и вызов задачи» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Flask Academy, подпишись на CoddyKit PRO. Курс Flask Academy содержит 4 уроков всего.

Чему я научусь в уроке «Определение и вызов задачи»?

Напишите задачу и запустите её с помощью delay. Ты практикуешь Flask Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Flask Academy?

Предыдущий опыт не требуется. Flask Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Определение и вызов задачи»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Flask Academy?

Да. Каждый урок Flask Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Почему работу следует вынести из запроса
  2. Подключение Celery к фабрике приложения
  3. Определение и вызов задачи
  4. Отслеживание результатов и обработка сбоев
← Назад к Flask Academy