백엔드 개발 파이썬 튜토리얼 Celery Redis Django를 사용하여 고성능 비동기 작업 프로세서를 개발하는 방법

Celery Redis Django를 사용하여 고성능 비동기 작업 프로세서를 개발하는 방법

Sep 26, 2023 am 08:41 AM
redis celery django 고성능 비동기 작업

如何利用Celery Redis Django开发高性能异步任务处理器

Celery Redis Django를 사용하여 고성능 비동기 작업 프로세서를 개발하는 방법

소개:
현대 웹 개발에서는 비동기 작업 처리가 점점 더 중요해지고 있습니다. 기존의 동기식 처리에서는 시간이 많이 걸리는 작업을 처리하는 동안 다른 요청이 차단되므로 웹사이트 성능이 저하되는 경우가 많습니다. 비동기 작업 프로세서를 사용하면 이 문제를 효과적으로 해결하고 웹 사이트 성능을 향상시킬 수 있습니다.

이 글에서는 Celery, Redis 및 Django를 사용하여 고성능 비동기 작업 프로세서를 개발하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.

1. Celery 설치 및 구성:

  1. Celery 설치: pip install celery 명령을 사용하여 Celery 라이브러리를 설치합니다.
  2. Celery 구성: Django의 프로젝트 설정 파일에 다음 구성을 추가합니다.
# celery settings
CELERY_BROKER_URL = 'redis://localhost:6379/0'
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
로그인 후 복사

참고: CELERY_BROKER_URL 및 CELERY_RESULT_BACKEND는 Redis를 메시지 브로커 및 결과 저장소의 백엔드로 사용합니다.

2. Redis 설치 및 구성:

  1. Redis 설치: 자신의 시스템 환경에 따라 적절한 설치 방법을 선택하여 Redis를 설치하세요.
  2. Redis 구성: Django 프로젝트 설정 파일에 다음 구성을 추가합니다.
# redis settings
REDIS_HOST = 'localhost'
REDIS_PORT = 6379
REDIS_DB = 0
로그인 후 복사

3. 비동기 작업 작성:

  1. 비동기 작업을 작성하기 위해 Django 프로젝트 앱에서Tasks.py 파일을 만듭니다. 다음은 예입니다.
from celery import shared_task
from django.core.mail import send_mail

@shared_task
def send_email_task(subject, message, recipient_list):
    send_mail(subject, message, 'noreply@example.com', recipient_list)
로그인 후 복사
  1. 뷰 함수 또는 다른 곳에서 비동기 작업을 호출합니다.
from .tasks import send_email_task

def send_email_view(request):
    # 调用异步任务
    send_email_task.delay('Subject', 'Message', ['recipient@example.com'])
    return HttpResponse('Email sent asynchronously.')
로그인 후 복사

넷째, Celery Worker를 시작합니다.

  1. 용 프로젝트 루트 디렉터리에 Celery 시작 스크립트 celery.py를 만듭니다. 셀러리 작업자를 시작합니다. 다음은 그 예입니다.
import os
from celery import Celery
from django.conf import settings

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')

app = Celery('project')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
로그인 후 복사
  1. 다음 명령을 실행하여 Celery Worker를 시작합니다.
celery -A project.celery worker --loglevel=info
로그인 후 복사

5. 테스트 및 배포:

  1. Django 프로젝트의 루트 디렉터리에서 다음 명령을 실행하여 Django를 시작합니다. server:
python manage.py runserver
로그인 후 복사
  1. In 브라우저에서 해당 URL에 접속하여 비동기 작업의 실행을 테스트합니다.

6. 요약:
Celery, Redis 및 Django를 사용하면 고성능 비동기 작업 프로세서를 쉽게 구현할 수 있습니다. 웹 애플리케이션을 개발할 때 비동기 작업 프로세서를 사용하여 시간이 많이 걸리는 작업을 처리하고 웹 사이트 성능을 개선하며 사용자 경험을 향상시킬 수 있습니다.

위 내용은 Celery, Redis 및 Django를 사용하여 고성능 비동기 작업 프로세서를 개발하는 방법에 대한 소개 및 구체적인 코드 예제입니다. 이 글이 도움이 되셨으면 좋겠습니다. 읽어주셔서 감사합니다!

위 내용은 Celery Redis Django를 사용하여 고성능 비동기 작업 프로세서를 개발하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Windows 11 10.0.22000.100 설치 시 발생하는 0x80242008 오류 해결 방법 Windows 11 10.0.22000.100 설치 시 발생하는 0x80242008 오류 해결 방법 May 08, 2024 pm 03:50 PM

Windows 11 10.0.22000.100 설치 시 발생하는 0x80242008 오류 해결 방법

PHP 함수 병목 현상을 분석하고 실행 효율성을 향상시킵니다. PHP 함수 병목 현상을 분석하고 실행 효율성을 향상시킵니다. Apr 23, 2024 pm 03:42 PM

PHP 함수 병목 현상을 분석하고 실행 효율성을 향상시킵니다.

Redis는 메모리 캐시인가요? Redis는 메모리 캐시인가요? Apr 20, 2024 am 05:26 AM

Redis는 메모리 캐시인가요?

Golang API 캐싱 전략 및 최적화 Golang API 캐싱 전략 및 최적화 May 07, 2024 pm 02:12 PM

Golang API 캐싱 전략 및 최적화

Redis는 비관계형 데이터베이스인가요? Redis는 비관계형 데이터베이스인가요? Apr 20, 2024 am 05:36 AM

Redis는 비관계형 데이터베이스인가요?

erlang과 golang 중 어느 것이 더 나은 성능을 갖고 있나요? erlang과 golang 중 어느 것이 더 나은 성능을 갖고 있나요? Apr 21, 2024 am 03:24 AM

erlang과 golang 중 어느 것이 더 나은 성능을 갖고 있나요?

PHP 개발의 캐싱 메커니즘 및 응용 실습 PHP 개발의 캐싱 메커니즘 및 응용 실습 May 09, 2024 pm 01:30 PM

PHP 개발의 캐싱 메커니즘 및 응용 실습

redis nio인가요? redis nio인가요? Apr 20, 2024 am 04:52 AM

redis nio인가요?

See all articles