Временная линия устаревания Celery¶
Удаления для версии 5.0¶
Старый API для задач¶
Модули задач Compat¶
Модуль
celery.decoratorsбудет удален:Это значит, что вам нужно измениться:
from celery.decorators import task
В:
from celery import task
Модуль
celery.task*может быть удален (не решено)Это означает, что вы должны измениться:
from celery.task import task
в:
from celery import task
—and:
from celery.task import Task
в:
from celery import Task
Обратите внимание, что новый класс Task больше не использует classmethod() для этих методов:
задержка
apply_async
повторная попытка
применять
AsyncResult
подзадача
Это также означает, что вы не можете вызывать эти методы непосредственно в классе, а должны сначала инстанцировать задачу:
>>> MyTask.delay() # NO LONGER WORKS
>>> MyTask().delay() # WORKS!
Атрибуты задачи¶
Атрибуты задачи:
queueexchangeexchange_typerouting_keydelivery_modepriority
является устаревшим и вместо него должно быть установлено task_routes.
Модули для удаления¶
celery.executeЭтот модуль содержит только
send_task: его следует заменить наapp.send_task.celery.decoratorscelery.logВместо этого используйте
app.log.celery.messagingВместо этого используйте
app.amqp.celery.registryВместо этого используйте
celery.app.registry.celery.task.controlВместо этого используйте
app.control.celery.task.schedulesВместо этого используйте
celery.schedules.celery.task.chordsВместо этого используйте
celery.chord().
Настройки¶
BROKER Настройки¶
Имя установки |
Заменить на |
|---|---|
|
|
|
|
|
|
|
|
|
REDIS Настройки бэкенда результата¶
Имя установки |
Заменить на |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Задача_отправить сигнал¶
Сигнал task_sent будет удален в версии 4.0. Вместо него используйте сигналы before_task_publish и << 2 >>>.
Результат¶
Применить к: AsyncResult, EagerResult:
Result.wait()->Result.get()Result.task_id()->Result.idResult.status->Result.state.
Настройки¶
Имя установки |
Заменить на |
|---|---|
|
Удаления для версии 2.0¶
Следующие настройки будут удалены:
Имя установки |
Заменить на |
|---|---|
CELERY_AMQP_CONSUMER_QUEUES |
task_queues |
CELERY_AMQP_CONSUMER_QUEUES |
task_queues |
CELERY_AMQP_EXCHANGE |
task_default_exchange |
CELERY_AMQP_EXCHANGE_TYPE |
task_default_exchange_type |
CELERY_AMQP_CONSUMER_ROUTING_KEY |
task_queues |
CELERY_AMQP_PUBLISHER_ROUTING_KEY |
task_default_routing_key |
CELERY_LOADERопределения без имени класса.Например, celery.loaders.default должно включать имя класса: celery.loaders.default.Loader.
TaskSet.run(). Используйтеcelery.task.base.TaskSet.apply_async()вместо этого.