Python

Django 6.0:バックグラウンドタスクが標準に入った

Django 6.0 が出ました。目玉は、これまで Celery を入れて解決していた領域が標準に入ってきたことです。

Django Neon Logo

バックグラウンドタスクが標準に入った

メール送信、画像のリサイズ、外部 API の呼び出し。リクエストの中でやりたくない処理は必ず出てきます。これまでは Celery と Redis、あるいは RQ を追加するのが定番でした。

Django 6.0 では、こうした処理を扱うための共通インターフェースが本体に入りました。タスクを定義してキューに積む、という部分の書き方が統一され、バックエンドを差し替えられる形になっています。

これはワーカーの実装そのものを置き換えるものではありません。本番で大量のジョブを捌くなら、結局は実行基盤を選ぶことになります。標準化されたのはアプリケーション側のインターフェースで、そこが動かせるようになったことに意味があります。

小さめのアプリなら、追加のミドルウェアを立てずに済む場面が増えるはずです。

移行するかどうか

すでに Celery で組んであるプロジェクトを急いで書き換える理由はありません。乗り換えの利点は依存が減ることで、動いている仕組みを壊してまで取りに行く価値があるかは規模によります。

新規で、まだキューを何も選んでいないなら、まず標準の仕組みで始めて、足りなくなってから外部に出すのが素直だと思います。

確認しておくこと

Django 6.0 は対応する Python のバージョンが上がっています。動かす前に、使っている Python と主要なサードパーティパッケージが対応済みかを確認してください。ORM やテンプレート周りにも変更が入っているので、アップグレード時は公式のリリースノートと非推奨一覧に目を通すのが結局は早道です。