Celery 弃用时间线 — Python 文档

来自菜鸟教程
Celery/docs/latest/internals/deprecation
跳转至:导航、​搜索

Celery 弃用时间表

版本 5.0 的删除

旧任务 API

兼容任务模块

  • 模块 celery.decorators 将被移除:

    这意味着您需要更改:

    from celery.decorators import task

    进入:

    from celery import task
  • 模块 celery.task 将被移除

    这意味着你应该改变:

    from celery.task import task

    进入:

    from celery import shared_task

    -和: .. 代码块:: python

    从芹菜导入任务

    进入:

    from celery import shared_task

    -和:

    from celery.task import Task

    进入:

    from celery import Task

请注意,新的 Task 类不再对这些方法使用 classmethod()

  • 延迟
  • apply_async
  • 重试
  • 申请
  • 异步结果
  • 子任务


这也意味着你不能直接在类上调用这些方法,而必须先实例化任务:

>>> MyTask.delay()          # NO LONGER WORKS


>>> MyTask().delay()        # WORKS!

任务属性

任务属性:

  • queue
  • exchange
  • exchange_type
  • routing_key
  • delivery_mode
  • priority

已弃用,必须由 :setting:`task_routes` 设置。


要移除的模块

  • celery.execute

    此模块仅包含 send_task:必须替换为 @send_task

  • celery.decorators

    请参阅 兼容任务模块

  • celery.log

    请改用 @log

  • celery.messaging

    请改用 @amqp

  • celery.registry

    请改用 celery.app.registry

  • celery.task.control

    请改用 @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`


任务发送信号

:signal:`task_sent` 信号将在 4.0 版本中删除。 请改用 :signal:`before_task_publish`:signal:`after_task_publish` 信号。


结果

适用于:AsyncResultEagerResult

  • 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 任务队列
CELERY_AMQP_CONSUMER_QUEUES 任务队列
CELERY_AMQP_EXCHANGE task_default_exchange
CELERY_AMQP_EXCHANGE_TYPE task_default_exchange_type
CELERY_AMQP_CONSUMER_ROUTING_KEY 任务队列
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()

    相反。