일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- java
- 개발
- Spring Boot
- 데이터베이스
- ORM
- node.js
- python3
- Spring
- 안드로이드
- 파이썬3
- HTTP
- 웹 개발
- 스프링 부트
- JPA
- 자바
- Python
- rabbitmq
- mysql
- 보안
- BCI
- bytecode
- db
- 자료구조
- 스프링부트
- 장고
- 파이썬
- 스프링
- 웹
- 디자인 패턴
- django
- Today
- Total
목록작업 큐 (2)
semtax의 개발 일지
개요 이번 포스팅에서는 python의 메시지 큐 라이브러리인 celery에 대해서 소개하고 간단한 예제를 돌려보도록 하겠습니다. Celery? Celery는, 분산 메시지 패싱을 이용해서 비동기적으로 작동하는 작업 큐 입니다. Celery를 통해서 동기 방식(Synchronous)의 작업을 비동기 방식(Asynchronus)의 코드로 바꿔 줄 수 있습니다. Celery의 장점 중 하나는, python에서 가장 많이 쓰이는 웹 프레임워크인 Django과 연동하는 기능을 공식적으로 지원한다는것입니다. Celery 공식 홈페이지에서 Django 연동 가이드도 소개해주고 있어서 상대적으로 다른 프레임워크에 비해서 연동이 쉽습니다. Celery는 기본적으로 rabbitMQ를 메시지 브로커로 사용하는것을 권장합니다..
개요 이번 포스팅에서는, rabbitMQ를 이용해서 작업 큐를 구현해보는 내용을 진행하도록 하겠습니다. 작업 큐(Work Queue) 란? 작업 큐는 쉽게 말해서 은행이나 식당에서 사용하는 번호표 같은것입니다. 사림들이 은행에 왔는데 창구가 꽉 찬 경우 번호표를 받고 대기 한 뒤, 차례가 오면 가서 업무를 처리하는 식이죠. 만약 이러한 번호표가 없다면 손님들이 대기하지 않고 떠나게 되겠죠. 즉, 작업 큐의 핵심은 오래걸리는 작업들의 요청이 허용량 이상으로 쏟아졌을때 큐를 이용해서 대기열을 둔 뒤에 실제 작업하는 사람이 작업을 하나씩 꺼내가서 작업을 한다는 것입니다. 이렇게 하는 경우 실제 작업을 시키는 사람의 입장에서는 요청을 즉시 즉시 받는것 처럼 느껴지는 것이지요. 즉, I/O를 요청하고나서 결과값을..