Временная линия устаревания 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!
Атрибуты задачи¶
Атрибуты задачи:
queue
exchange
exchange_type
routing_key
delivery_mode
priority
является устаревшим и вместо него должно быть установлено task_routes
.
Модули для удаления¶
celery.execute
Этот модуль содержит только
send_task
: его следует заменить наapp.send_task
.celery.decorators
celery.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.id
Result.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()
вместо этого.