你正在阅读 Celery 3.1 的文档。开发版本文档见: 此处.
Module celery.task.trace has been renamed to celery.app.trace as the celery.task package is being phased out. The compat module will be removed in version 3.2 so please change any import from:
from celery.task.trace import …
to:
from celery.app.trace import …
AsyncResult.serializable() and celery.result.from_serializable will be removed.
Use instead:
>>> tup = result.as_tuple() >>> from celery.result import result_from_tuple >>> result = result_from_tuple(tup)
Module celery.decorators will be removed:
Which means you need to change:
from celery.decorators import task
Into:
from celery import task
Module celery.task may be removed (not decided)
This means you should change:
from celery.task import taskinto:
from celery import task—and::
from celery.task import Task
into:
from celery import Task
Note that the new Task class no longer uses classmethods 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!
TaskSet has been renamed to group and TaskSet will be removed in version 4.0.
Old:
>>> from celery.task import TaskSet
>>> TaskSet(add.subtask((i, i)) for i in xrange(10)).apply_async()
New:
>>> from celery import group
>>> group(add.s(i, i) for i in xrange(10))()
The magic keyword arguments accepted by tasks will be removed in 4.0, so you should start rewriting any tasks using the celery.decorators module and depending on keyword arguments being passed to the task, for example:
from celery.decorators import task
@task()
def add(x, y, task_id=None):
print("My task id is %r" % (task_id, ))
should be rewritten into:
from celery import task
@task(bind=True)
def add(self, x, y):
print("My task id is {0.request.id}".format(self))
The task attributes:
is deprecated and must be set by CELERY_ROUTES instead.
Apply to: AsyncResult, EagerResult:
- ``Result.wait()`` -> ``Result.get()``
The task_sent signal will be removed in version 4.0. Please use the before_task_publish and after_task_publush signals instead.
celery.execute
This module only contains send_task, which must be replaced with celery.send_task instead.
celery.decorators
celery.log
Use celery.log instead.
celery.messaging
Use celery.amqp instead.
celery.registry
Use celery.app.registry instead.
celery.task.control
Use celery.control instead.
celery.task.schedules
Use celery.schedules instead.
celery.task.chords
Use celery.chord() instead.
Setting name | Replace with |
---|---|
BROKER_HOST | BROKER_URL |
BROKER_PORT | BROKER_URL |
BROKER_USER | BROKER_URL |
BROKER_PASSWORD | BROKER_URL |
BROKER_VHOST | BROKER_URL |
Setting name | Replace with |
---|---|
CELERY_REDIS_HOST | CELERY_RESULT_BACKEND |
CELERY_REDIS_PORT | CELERY_RESULT_BACKEND |
CELERY_REDIS_DB | CELERY_RESULT_BACKEND |
CELERY_REDIS_PASSWORD | CELERY_RESULT_BACKEND |
REDIS_HOST | CELERY_RESULT_BACKEND |
REDIS_PORT | CELERY_RESULT_BACKEND |
REDIS_DB | CELERY_RESULT_BACKEND |
REDIS_PASSWORD | CELERY_RESULT_BACKEND |
Setting name | Replace with |
---|---|
CELERYD_LOG_LEVEL | --loglevel |
CELERYD_LOG_FILE | --logfile` |
CELERYBEAT_LOG_LEVEL | --loglevel |
CELERYBEAT_LOG_FILE | --loglevel` |
CELERYMON_LOG_LEVEL | --loglevel |
CELERYMON_LOG_FILE | --loglevel` |
Setting name | Replace with |
---|---|
CELERY_TASK_ERROR_WITELIST | Annotate Task.ErrorMail |
CELERY_AMQP_TASK_RESULT_EXPIRES | CELERY_TASK_RESULT_EXPIRES |
Setting name | Replace with |
---|---|
CELERY_AMQP_CONSUMER_QUEUES | CELERY_QUEUES |
CELERY_AMQP_CONSUMER_QUEUES | CELERY_QUEUES |
CELERY_AMQP_EXCHANGE | CELERY_DEFAULT_EXCHANGE |
CELERY_AMQP_EXCHANGE_TYPE | CELERY_DEFAULT_AMQP_EXCHANGE_TYPE |
CELERY_AMQP_CONSUMER_ROUTING_KEY | CELERY_QUEUES |
CELERY_AMQP_PUBLISHER_ROUTING_KEY | CELERY_DEFAULT_ROUTING_KEY |
CELERY_LOADER definitions without class name.
E.g. celery.loaders.default, needs to include the class name: celery.loaders.default.Loader.
instead.
The module celery.task.rest; use celery.task.http instead.