安装所需库:
pip install django-celery-results
pip install celery[redis]
pip install boto3
在settings.py文件中配置Celery和AWS相关参数:
# Celery Configuration
CELERY_BROKER_URL = 'redis://localhost:6379/0'
CELERY_RESULT_BACKEND = 'django_celery_results.backends.database:DatabaseBackend'
# AWS Configuration
AWS_REGION = 'your_region'
AWS_ACCESS_KEY_ID = 'your_access_key_id'
AWS_SECRET_ACCESS_KEY = 'your_secret_access_key'
AWS_SQS_QUEUE_NAME = 'your_queue_name'
创建一个文件tasks.py,定义一个简单任务:
from celery import shared_task
@shared_task
def add(x, y):
return x + y
在视图函数中使用这个任务:
from django.shortcuts import render
from .tasks import add
def home(request):
result = add.delay(1, 2)
return render(request, 'home.html', {'result': result})
在Celery worker中使用AWS SQS队列:
celery -A your_project worker -Q your_queue_name -c 2 --loglevel=info
这样,你现在就可以在Django项目中使用AWS SQS和django-celery-results后端了。