CeleryをDjangoで設定する方法

2024年6月15日

CeleryをDjangoプロジェクトに統合するには、以下の手順に従います。

  1. Celeryのインストール: まず、Celeryをインストールします。通常、pipを使用してインストールできます。
    pip install celery
    
  2. Djangoアプリケーションの作成: Celery用のDjangoアプリケーションを作成します。
    python manage.py startapp celeryapp
    
  3. 設定の追加: Djangoプロジェクトのsettings.pyファイルに、Celeryの設定を追加します。
    python
    # settings.py
    
    # Celeryの設定
    CELERY_BROKER_URL = 'redis://localhost:6379/0'
    

    この例では、RedisをCeleryのブローカーとして使用しています。必要に応じて、他のバックエンドを使用することもできます。

  4. Celeryアプリケーションの作成: celery.pyファイルを作成して、Celeryアプリケーションを定義します。
    python
    # celery.py
    
    from __future__ import absolute_import, unicode_literals
    import os
    from celery import Celery
    
    # Djangoの設定をロード
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_project.settings')
    
    # Celeryアプリケーションの作成
    app = Celery('your_project')
    
    # 設定の読み込み
    app.config_from_object('django.conf:settings', namespace='CELERY')
    
    # CeleryのタスクがDjangoの自動ローダーを使用するように設定
    app.autodiscover_tasks()
    
  5. タスクの定義: Celeryタスクを定義します。tasks.pyファイルにタスクを定義することが一般的です。
    python
    # tasks.py
    
    from celery import shared_task
    
    @shared_task
    def your_task_name():
        # タスクの処理を記述
        pass
    
  6. タスクの使用: Celeryタスクを他の場所で使用するには、単純にタスクをインポートして呼び出します。
    python
    from celeryapp.tasks import your_task_name
    
    result = your_task_name.delay()
    

これで、DjangoプロジェクトにCeleryが統合され、Celeryを使用して非同期タスクを実行できるようになりました。必要に応じて、Celery Beatなどの他のCeleryの機能を使用して、定期的なタスクのスケジューリングなどを設定することもできます。

未分類

Posted by ぼっち