Celery 5.0(特異点)の新機能—Pythonドキュメント
Celery 5.0の新機能(特異性)
- 著者
- Omer Katz(
omer.drow at gmail.com
)
変更履歴
新しいドキュメントではメジャーバージョンの変更について説明しています。バグ修正リリース(0.0.x)の変更を一覧表示する変更履歴もありますが、古いシリーズは履歴セクションにアーカイブされています。 。
Celeryは、Pythonで分散システムを維持するために必要なツールを操作に提供しながら、大量のメッセージを処理するためのシンプルで柔軟性があり、信頼性の高い分散プログラミングフレームワークです。
これは、リアルタイム処理に重点を置いたタスクキューであり、タスクのスケジューリングもサポートしています。
Celeryには、ユーザーと寄稿者の大規模で多様なコミュニティがあります。IRCまたはメーリングリストでに参加する必要があります。
セロリの詳細については、はじめにをお読みください。
このバージョンは以前のバージョンとほとんど下位互換性がありますが、このリリースは新しいメジャーバージョンであるため、次のセクションを読むことが重要です。
このバージョンは、CPython 3.6、3.7、および3.8で公式にサポートされており、PyPy3でもサポートされています。
目次
このバージョンにアップグレードする前に、必ず重要な注意事項をお読みください。
序文
5.0.0リリースは、Celeryの新しいメジャーリリースです。
今から、ユーザーはメジャーバージョンのより頻繁なリリースを期待する必要があります。私たちは速く動き、物事を壊して、さらに良い体験をもたらします。
5.xシリーズのリリースは、 Jon Hopkins の曲にちなんでコードネームが付けられています。 このリリースのコードネームは Singularity です。
このバージョンでは、2020年1月1日にEOLに達したPython2.7.xのサポートが終了します。 これにより、メンテナは下位互換性を心配することなくイノベーションに集中できます。
今後は、Python3.6以降のみをサポートします。 2021年12月のEOLまで、Python3.6との互換性を維持します。
— Omer Katz
長期サポートポリシー
移行するための時間を提供したいので、Celery 4.xLTSリリースを指定します。 Celery 4.xは、2021年8月1日までサポートされます。
バグ修正とセキュリティ問題のパッチを受け入れて適用します。 ただし、そのバージョンの新機能はマージされません。
Celery 5.x はLTSリリースではありません。 Celery6.xのリリースまでサポートします。
現在、ロングタームサポートポリシーを定義中です。 更新については、次の「新着情報」ドキュメントをご覧ください。
貢献者の壁
Artem Vasilyev < [email protected] >アッシュベルリン-テイラー< [email protected] > Asif Saif Uddin(Auvi)< [email protected] > Asif Saif Uddin < [email protected] >クリスチャンクラウス< [email protected] > Germain Chazot < [email protected] >ハリーモレノ< [email protected] >ケビンバイ< [email protected] >マーティン・パウルス< [email protected] > Matus Valo < [email protected] > Matus Valo < [email protected] >多分-sybr < [email protected] > Omer Katz < [email protected] >パトリッククローク< [email protected] > qiaocc < [email protected] >トーマス・グレインジャー< [email protected] > Weiliang Li < [email protected] >>
ノート
この壁はgitの履歴から自動的に生成されたため、残念ながら、メーリングリストの質問への回答など、より重要なことを支援する人は含まれていません。
Celery4.xからのアップグレード
ステップ1:コマンドライン呼び出しを調整する
Celery 5.0では、完全な下位互換性がない新しいCLI実装が導入されています。
グローバルオプションは、サブコマンドの後に配置できなくなりました。 代わりに、次のように celery コマンドのオプションとして配置する必要があります。
celery --app path.to.app worker
デーモン化ガイドを使用してCeleryを本番環境にデプロイしていた場合は、更新のために再度アクセスする必要があります。
手順2:新しい設定名で構成を更新します
Celery 4.0に移行したときに構成をまだ更新していない場合は、今すぐ更新してください。
これらの非推奨設定の使用について大声で警告しなかったため、非推奨期間を6.0まで延長することを選択しました。
手順については、移行ガイドを参照してください。
ステップ3:このドキュメントの重要な注意事項を読む
次のセクションに記載されている重要なアップグレードノートの影響を受けていないことを確認してください。
主に、CLIでの重大な変更が影響を与えないことを確認する必要があります。 詳細については、新しいコマンドラインインターフェイスを参照してください。
ステップ4:コードをPython3に移行する
Celery5.0はPython3のみをサポートします。 したがって、コードがPython3と互換性があることを確認する必要があります。
コードをPython3に移植していない場合は、アップグレードする前に移植する必要があります。
2to3 や pyupgrade などのツールを使用して、この作業を支援できます。
移行が完了したら、Celery 4でテストスイートを実行して、何も壊れていないことを確認します。
ステップ5:Celery5.0にアップグレードする
この時点で、ワーカーとクライアントを新しいバージョンにアップグレードできます。
重要な注意事項
サポートされているPythonバージョン
サポートされているPythonバージョンは次のとおりです。
- CPython 3.6
- CPython 3.7
- CPython 3.8
- PyPy3.6 7.2(
pypy3
)
Python2.7および3.5のサポートを終了しました
CeleryにはPython3.6以降が必要になりました。
Python2.7は2020年1月にEOLに達しました。 努力を集中するために、このバージョンではPython2.7のサポートを終了しました。
さらに、Python3.5は2020年9月にEOLに達しました。 そのため、Python3.5のサポートも終了します。
それでもPython2.7またはPython3.5を使用してCeleryを実行する必要がある場合は、Celery4.xを引き続き使用できます。 ただし、Python 2.7にはこれ以上のセキュリティパッチは適用されず、前述のようにPython 3.5は実用上の理由からサポートされていないため、サポートされているPythonバージョンにアップグレードすることをお勧めします。
昆布
このリリース以降、最低限必要なバージョンは昆布5.0.0です。
ビリヤード
このリリース以降、最低限必要なバージョンはビリヤード3.6.3です。
Geventワーカープール
このリリース以降、最低限必要なバージョンはgevent1.0.0です。
Couchbase結果バックエンド
Couchbase結果バックエンドはV3CouchbaseSDKを使用するようになりました。
その結果、Couchbase Server5.xはサポートされなくなりました。
また、このリリース以降、データベースクライアントに最低限必要なバージョンはcouchbase3.0.0です。
CouchbaseServerがV3SDKと互換性があることを確認するには、ドキュメントを参照してください。
Riak結果バックエンド
データベースが維持されなくなったため、Riak結果バックエンドは削除されました。
PythonクライアントはPython3.6以下のみをサポートしているため、サポートできず、メンテナンスもされていません。
まだRiakを使用している場合は、アプリケーションを別のデータベースに移行する間、Celery5.0へのアップグレードを控えてください。
事前の通知がないことをお詫び申し上げますが、この重大な変更による影響を受ける可能性はごくわずかであると考えております。
AMQP結果バックエンド
AMQP結果バックエンドは、バージョン4.0で廃止されたため、削除されました。
非推奨のモジュールを削除
celery.utils.encoding および celery.task モジュールは、バージョン4.0で非推奨になったため、5.0で削除されました。
以前に celery.utils.encoding モジュールを使用していた場合は、代わりに kombu.utils.encoding をインポートする必要があります。
以前に celery.task モジュールを使用していた場合は、代わりに celery モジュールから直接インポートする必要があります。
from celery.task import Task を使用していた場合は、代わりに from celery import Task を使用する必要があります。
celery.task デコレータを使用していた場合は、代わりに celery.shared_task を使用する必要があります。
新しいコマンドラインインターフェイス
コマンドラインインターフェイスは、Clickを使用して改良されました。 その結果、いくつかの重大な変更が導入されました。
- celery worker –app path.to.app や celery worker –workdir / path / to / workdir などのPostfixグローバルオプションはサポートされなくなりました。 メインのceleryコマンドのグローバルオプションの一部として指定する必要があります。
- celery amqp および celery shell は、シェルを開始するために repl サブコマンドを必要とします。 シェルなしで特定のコマンドを呼び出すこともできるようになりました。 詳細については、 celery amqp –help または celery shell –help と入力してください。
- ユーザーオプションを追加するためのAPIが変更されました。 詳細については、ドキュメントを参照してください。
クリックすると、シェルの完成が箱から出して提供されます。 この機能は、以前のbash完了スクリプトを置き換え、zshおよびfishシェルの完了サポートを追加します。
パッケージャーの便宜のために、bash完了スクリプトは extras / celery.bash にエクスポートされました。
Redis結果バックエンドの順序付きグループ結果
以前は、グループの結果は呼び出し順序で並べられていませんでした。 Celery 4.4.7では、注文するためのオプトイン機能が導入されました。
これはオプトアウト動作になりました。
以前にRedis結果バックエンドを使用していた場合は、この動作をオプトアウトする必要がある場合があります。
この機能を無効にする方法については、ドキュメントを参照してください。
ニュース
Redis結果バックエンドの再試行ポリシー
Redis結果バックエンドの再試行ポリシーは、結果バックエンドトランスポートオプションを通じて公開されるようになりました。
詳細については、ドキュメントを参照してください。