Celery Deprecation Time-line — Python documentation
Celery Deprecation Time-line
Removals for version 5.0
Old Task API
Compat Task Modules
Module
celery.decorators
will be removed:This means you need to change:
from celery.decorators import task
Into:
from celery import task
Module
celery.task
will be removedThis means you should change:
from celery.task import task
into:
from celery import shared_task
—and: .. code-block:: python
from celery import task
into:
from celery import shared_task
—and:
from celery.task import Task
into:
from celery import Task
Note that the new Task
class no longer uses classmethod()
for these methods:
- delay
- apply_async
- retry
- apply
- AsyncResult
- subtask
This also means that you can’t call these methods directly on the class, but have to instantiate the task first:
>>> MyTask.delay() # NO LONGER WORKS
>>> MyTask().delay() # WORKS!
Task attributes
The task attributes:
queue
exchange
exchange_type
routing_key
delivery_mode
priority
is deprecated and must be set by :setting:`task_routes` instead.
Modules to Remove
celery.execute
This module only contains
send_task
: this must be replaced with@send_task
instead.celery.decorators
celery.log
Use
@log
instead.celery.messaging
Use
@amqp
instead.celery.registry
Use
celery.app.registry
instead.celery.task.control
Use
@control
instead.celery.task.schedules
Use
celery.schedules
instead.celery.task.chords
Use
celery.chord()
instead.
Settings
BROKER Settings
Setting name | Replace with |
---|---|
BROKER_HOST
|
:setting:`broker_url` |
BROKER_PORT
|
:setting:`broker_url` |
BROKER_USER
|
:setting:`broker_url` |
BROKER_PASSWORD
|
:setting:`broker_url` |
BROKER_VHOST
|
:setting:`broker_url` |
REDIS Result Backend Settings
Setting name | Replace with |
---|---|
CELERY_REDIS_HOST
|
:setting:`result_backend` |
CELERY_REDIS_PORT
|
:setting:`result_backend` |
CELERY_REDIS_DB
|
:setting:`result_backend` |
CELERY_REDIS_PASSWORD
|
:setting:`result_backend` |
REDIS_HOST
|
:setting:`result_backend` |
REDIS_PORT
|
:setting:`result_backend` |
REDIS_DB
|
:setting:`result_backend` |
REDIS_PASSWORD
|
:setting:`result_backend` |
Task_sent signal
The :signal:`task_sent` signal will be removed in version 4.0. Please use the :signal:`before_task_publish` and :signal:`after_task_publish` signals instead.
Result
Apply to: AsyncResult
, EagerResult
:
Result.wait()
->Result.get()
Result.task_id()
->Result.id
Result.status
->Result.state
.
Removals for version 2.0
- The following settings will be removed:
Setting name | Replace with |
---|---|
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
definitions without class name.For example,, celery.loaders.default, needs to include the class name: celery.loaders.default.Loader.
TaskSet.run()
. Usecelery.task.base.TaskSet.apply_async()
instead.