Встречается на собеседованиях • сегодня

В чем различия task от shared_task

@task и @shared_task — это декораторы в Celery для создания асинхронных задач. Основные различия:

  1. Привязка к модулю
    @task создает задачу, привязанную к конкретному модулю (обычно внутри класса или приложения).
    @shared_task — независимая от модуля задача, которую можно использовать в любом месте проекта.
  1. Использование в Django
    В Django @shared_task предпочтительнее, так как задачи остаются доступными даже при перезагрузке кода.

Пример:

python
from celery import shared_task, task

# Общая задача (лучше для Django)
@shared_task
def add_shared(x, y):
    return x + y

# Обычная задача (привязана к модулю)
@task
def add_task(x, y):
    return x + y

Когда использовать:

  • @shared_task — для задач, которые должны быть доступны глобально (например, в Django).
  • @task — если задача нужна только в рамках определенного модуля/класса.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы