API를 개발하다 보면 비동기적으로 처리해야 하는 무거운 로직을 개발해야 할 순간이 발생한다. 이때 비동기 처리 프로세스를 정리해보려고 한다. 1) 장고 어플리케이션에서 비동기적으로 일을 처리해야 할 때 일단 프론트에 응답(큐 적재 성공 시 200, 적재 실패 시 500)하고, (진짜 결과를 응답하는게 아님, 진짜 로직을 처리한 결과는 Redis에 저장) RabbitMQ에 메세지(비동기task를 가리키는)를 적재한다. 2) Celery Worker는 같은 메세지큐를 바라보게 해서 메세지 가져오고 진짜 task를 수행한다. 3) Worker가 task 수행한 후에 결과를 Redis 서버에 저장한다. 1.RabbitMQ 서버 띄우기 ✔️rabbitmq-server 2. Redis 실행 및 중단 ✔️brew ..
클라이언트에서 요청을 보낸다. 웹서버는 요청을 받는다. 이 때, 동적인 페이지를 요청했다면 WSGI 서버를 호출한다. 웹서버는 Nginx, Apache 같은 소프트웨어이다. 웹 서버의 역할 웹 페이지를 클라이언트로 전달한다. 주로 그림, css, 자바스크립트를 포함한 html 문서가 클라이언트로 전달된다. WSGI 서버는 장고(WSGI를 사용하는 웹 어플리케이션, WSGI는 파이썬에 종속적임) 를 호출한다. WSGI 서버는 장고와 통신할 때 'wsgi.py' 파일을 통해 장고 어플리케이션을 호출한다. 만약 프로젝트의 디렉토리 구조를 커스터마이징하여 settings.py 파일이 이동하게 된다면 그 경로를 여기서 반드시 수정한다. 참고로 장고 내장서버는 WSGI 기능을 자체적으로 포함한다. (python m..
- Total
- Today
- Yesterday
- 익명자식객체
- nodejs
- es6모듈
- Git
- 생성자필드메소드
- 정적멤버
- @functools.wraps
- 백준2206 파이썬 풀이
- 백준
- yarn start
- @functools.lru_cache
- nunjucks
- ES6
- 인스턴스멤버
- os
- jdk
- @functools.singledispatch
- sequelize.fn
- jre
- 사용자정의예외클래스
- method와 function
- 자바스레드
- 메이븐 저장소
- 자바빌드도구
- dynamic-project
- 객체지향개념
- java
- 클래스와객체
- 자바스크립트Promise
- 자바스크립트Call-back
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |