작업큐
Posts
2 posts![[Python] 비동기 작업큐와 Global 객체에 관한 고찰](https://img.zoomtrend.com/2017/06/27/a0105618_5951e21479438.png)
[Python] 비동기 작업큐와 Global 객체에 관한 고찰
지난번 비동기 작업 큐를 살펴보면서 Celery 대신 간단한 파이썬의 RQ를 살펴본 적이 있습니다.이것을 사용하다가 이번에 새로운 곳에 진행을 하려다 보니다음과 같은 경우가 생겼습니다. G_H = None def mytask(*args, **kwargs): if G_H is None: G_H = MyHandle() G_H.do() 위와 유사한 경우가 생겼습니다. 즉, G_H가 어떤 글로벌 인스턴스를 갖고이를 mytask 라는 태스크 수행 함수에서초기화 된 것을 계속 이용한다는 개념입니다. Singleton 패턴에서 잘 사용하고는 하지요.위에서는 글로벌로 해결하려고 합니다만... 위와 같은 접근이 RQ에서는 전혀 동작하지 않습니다. 작업 워커는 위와 같은 코드가 수행될
![[Python] Redis rq 를 이용한 간단한 비동기 작업 큐](https://img.zoomtrend.com/2017/05/17/a0105618_591bcc0a298bc.png)
[Python] Redis rq 를 이용한 간단한 비동기 작업 큐
파이썬에서 비동기 작업 큐 라고 하면 가장 먼저 떠 오르는 것이 Celery 라는 것입니다. 그런데 위에 읽어보면 비동기 큐라기 보다는 "분산 작업 큐" 라는 것이 더 정확한 말입니다. 분산이라는 의미로 어떤 작업을 특정 큐에 넣으면 네트워크 환경에서 이를 여러 워커들이 다양한 우선순위를 갖고이를 처리한다는 의미이지요. 그런데 최근에 이런 분산의 목적 보다는 정말로 단순한 작업 대기 큐로서 비동기 작업 큐가 필요하게 되었습니다. 간단히 찾아보니, RQ 라는 것이 있었습니다. 위의 홈페이지에 있는 것이 감이 잘 안잡혀 살펴보다가 원 소스에 있는 예제를 살펴보았습니다. 이 예제를 돌리는데 필요한 것은redis 서버와 파이썬 redis, rq 모듈입니다. 맥에서는 간단히 $ brew install



