Djangoタスク自動生成と通知設定【Celery/Scheduler】
Django内でタスクを自動生成してユーザーに通知する場合、DjangoのタイマータスクモジュールであるCeleryとメッセージキューモジュールのRedisを組み合わせることができます。以下は基本的な実装手順です。
- 最初に、CeleryとRedisをインストールします。
pip install Celery
pip install redis
- Django プロジェクトの settings.py ファイルに Celery と Redis を設定します。
# settings.py
CELERY_BROKER_URL = 'redis://localhost:6379/0'
- tasks.pyファイルを作成し、タスク関数を定義します。
# tasks.py
from celery import Celery
app = Celery('tasks', broker='redis://localhost:6379/0')
@app.task
def remind_user():
# 在这里编写提醒用户的逻辑
pass
- views.pyでタスク関数を呼び出して定期的なタスクを設定します。
# views.py
from tasks import remind_user
from datetime import datetime, timedelta
def create_reminder(request):
remind_user.apply_async(eta=datetime.now() + timedelta(minutes=30))
return HttpResponse('Reminder created!')
- Celeryワーカーを起動します。
celery -A your_project_name worker --loglevel=info
- Celery beatを起動して定期的なタスクのスケジューリングを行います。
celery -A your_project_name beat --loglevel=info
上記の手順を通じて、Djangoプロジェクトで自動的にタスクを作成し、ユーザーに通知する機能を実装することができます。タスクの関数のロジックや呼び出し方法を実際のニーズに合わせて変更することができます。