Временная линия устаревания 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 Настройки

Имя установки

Заменить на

BROKER_HOST

broker_url

BROKER_PORT

broker_url

BROKER_USER

broker_url

BROKER_PASSWORD

broker_url

BROKER_VHOST

broker_url

REDIS Настройки бэкенда результата

Имя установки

Заменить на

CELERY_REDIS_HOST

result_backend

CELERY_REDIS_PORT

result_backend

CELERY_REDIS_DB

result_backend

CELERY_REDIS_PASSWORD

result_backend

REDIS_HOST

result_backend

REDIS_PORT

result_backend

REDIS_DB

result_backend

REDIS_PASSWORD

result_backend

Задача_отправить сигнал

Сигнал task_sent будет удален в версии 4.0. Вместо него используйте сигналы before_task_publish и << 2 >>>.

Результат

Применить к: AsyncResult, EagerResult:

  • Result.wait() -> Result.get()

  • Result.task_id() -> Result.id

  • Result.status -> Result.state.

Настройки

Имя установки

Заменить на

CELERY_AMQP_TASK_RESULT_EXPIRES

result_expires

Удаления для версии 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()

    вместо этого.

Вернуться на верх