セロリ非推奨のタイムライン—Pythonドキュメント

提供:Dev Guides
Celery/docs/latest/internals/deprecation
移動先:案内検索

セロリ廃止のタイムライン

バージョン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 shared_task

    -と: .. コードブロック:: python

    セロリのインポートタスクから

    の中へ:

    from celery import shared_task

    -と:

    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

は非推奨であり、代わりに: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 :setting: `broker_url`
BROKER_PORT :setting: `broker_url`
BROKER_USER :setting: `broker_url`
BROKER_PASSWORD :setting: `broker_url`
BROKER_VHOST :setting: `broker_url`


REDIS結果のバックエンド設定

設定名 と置換する
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: `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 :setting: `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()を使用する

    代わりは。