실습 경험: Django에서 Celery와 Redis를 통합하여 비동기 작업 구현
소개:
웹 애플리케이션의 복잡성이 계속 증가함에 따라 많은 작업에는 많은 시간과 리소스가 필요합니다. 사용자 경험과 시스템 효율성을 향상시키기 위해 개발자는 시간이 많이 걸리는 일부 작업을 실행을 위한 비동기 작업으로 변환해야 하는 경우가 많습니다. Django에서는 Celery와 Redis를 통합하여 비동기 작업을 구현할 수 있습니다. 이 글에서는 실용적인 코드 예제를 통해 Django에서 Celery와 Redis를 통합하는 방법을 소개합니다.
pip install celery
그런 다음 Redis를 설치하려면 다음 명령을 사용할 수 있습니다.
sudo apt-get install redis-server
설치가 완료된 후 Django 프로젝트를 구성해야 합니다. 셀러리와 Redis를 사용합니다. 프로젝트의 settings.py 파일에 다음 코드를 추가합니다.
# CELERY SETTINGS CELERY_BROKER_URL = 'redis://localhost:6379/0' CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
여기서 Redis의 로컬 주소와 포트를 지정합니다. Redis가 실행 중이고 지정된 포트에서 수신 대기 중인지 확인하세요.
from celery import Celery app = Celery('myapp', broker='redis://localhost:6379/0') @app.task def add(x, y): return x + y
이 예에서는 Celery 애플리케이션을 만들고 add라는 작업을 정의합니다. 추가 작업은 두 개의 매개변수 x와 y를 받고 그 합계를 반환합니다.
from myapp.tasks import add def my_view(request): x = 10 y = 20 add.delay(x, y) return HttpResponse("Task added to the queue.")
이 예에서는 앞서 정의한 추가 작업을 가져와서 보기 함수에서 호출했습니다. 지연() 메서드를 사용하여 작업을 Celery 대기열에 추가하고 즉시 HttpResponse를 사용자에게 반환합니다. 이렇게 하면 시간이 많이 걸리는 작업을 수행하는 동안 사용자가 차단되지 않습니다.
celery -A myapp worker -l info
이렇게 하면 Celery 작업자가 시작되고 대기열에서 작업 처리가 시작됩니다. -l 매개변수를 사용하여 로그 수준을 설정할 수 있습니다.
pip install flower
설치가 완료되면 새 터미널 창을 열고 다음 명령을 실행하세요.
flower -A myapp --port=5555
이렇게 하면 Flower 서버가 시작되고 포트 5555에서 수신됩니다. 브라우저에서 localhost:5555를 방문하면 현재 실행 중인 작업 및 작업 상태와 같은 정보를 볼 수 있습니다.
결론:
Celery와 Redis를 통합하면 Django에서 효율적인 비동기 작업 처리를 달성할 수 있습니다. 이 문서에서는 Django 프로젝트에서 Celery를 구성하고 사용하는 기본 단계를 다루고 실용적인 코드 예제를 제공합니다. 이 기사가 개발 시 보다 효율적인 비동기 작업 처리를 달성하는 데 도움이 되기를 바랍니다.
위 내용은 실무 경험: Django에서 Celery와 Redis를 통합하여 비동기 작업 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!