celery(5)
-
[Celery] 무작정 시작하기 (5) - Monitoring
2020/01/10 - [Back-end/Python] - [Celery] 무작정 시작하기 (1) - 설치 및 실행 2020/01/17 - [Back-end/Python] - [Celery] 무작정 시작하기 (2) - Task 2020/01/20 - [Back-end/Python] - [Celery] 무작정 시작하기 (3) - Chain 2020/01/20 - [Back-end/Python] - [Celery] 무장적 시장하기 (4) - Group과 Chord 지금까지 Celery에서 Task를 사용하는 예제들을 다루면서 실행 상태를 확인 할 때 Celery Log만 봤었다. 크롤링에 Task를 사용하면서 수행시간이 긴 Task를 확인하고 중단 할 필요가 생겼다. 당연히 Log에서는 처리할 수 없는 부분..
2020.01.28 -
[Celery] 무작정 시작하기 (3) - Chain
2020/01/10 - [Back-end/Python] - [Celery] 무작정 시작하기 (1) - 설치 및 실행 2020/01/17 - [Back-end/Python] - [Celery] 무작정 시작하기 (2) - Task 지난 포스트에서 apply_async(delay)로 Task를 단일 실행시키는 방법에 대해서 간단하게 알아보았다. 단일로 실행시켰을 경우 각 Task는 독립적이기 때문에 서로의 결과값을 참조할 수 없다. 하지만, 처음에 실행된 Task의 결과값을 다음 Task에서 사용해야하는 경우도 있을 것이다. 그래서, 이번 포스트에서는 이러한 문제를 해결할 수 있는 Chain에 대해서 알아보도록 하겠다. 지난 포스트에서 셋팅한 Celery App을 사용하므로 반드시 선행하길 바란다. 1. Ch..
2020.01.20 -
[Celery] 무작정 시작하기 (2) - Task
2020/01/10 - [Back-end/Python] - [Celery] 무작정 시작하기 (1) - 설치 및 실행 지난 포스트에서 Celery를 설치하고 간단하게 Task를 비동기로 실행해보았다. Celery가 비동기 태스크 큐이지만 동기적으로 Task를 실행할 수도 있고, 이전 Task의 결과를 다음 Task의 인자로 전달하여 실행하는 등 다양한 처리 방법들을 제공한다. 그래서 이번 포스트에서는 지금까지 찾아본 Task를 실행하는 방법들에 대해서 알아보도록 하겠다. 1. Task를 실행하는 방법. 1-1. apply_async 또는 delay를 이용하는 방법. - 호출과 동시에 Task가 실행됨. - delay는 apply_async를 사용하여 만든 shortcut이며, Arguments만 전달할 수..
2020.01.17 -
[Celery] 무작정 시작하기 (1) - 설치 및 실행
Scrapy+Selenium를 이용하여 크롤링을 하다가 오래 걸리는 한 녀석 때문에 다른 작업들이 밀려서 실시간으로 데이터를 가져오지 못하는 경우가 발생했다. 그래서 파이썬에서 비동기처리를 할 수 있는 방법에 대해서 찾아보다가 Scrapyd와 Celery에 대해서 알게되었다. Scrapyd는 API를 통해 Spider를 비동기적으로 호출하고 작업을 취소할 수도 있고, 사용법도 간단하여 아주 유용하게 사용한 녀석이다. 그리고 Celery는 비동기 태스크 큐이며 일련의 작업들을 큐에 담아 멀티태스킹 처리하는 방식이다. 여기에 Spider를 실행시키는 작업을 담으면 비동기처리가 가능하게 되고, 추가로 다른 작업들도 비동기 처리를 할 수 있다. 그래서 동기적으로 수행되는 웹에서 파일을 변환하여 저장하거나, 파일..
2020.01.10 -
[Tech.] Message Broker란?
Message Broker(메시지 브로커)는 Publisher(송신자)로부터 전달받은 메시지를 Subscriber(수신자)로 전달해주는 중간 역할이며 응용 소프트웨어 간에 메시지를 교환할 수 있게 한다. 이 때 메시지가 적재되는 공간을 Message Queue(메세지 큐)라고 하며 메시지의 그룹을 Topic(토픽)이라고 한다. 예를들어 설명해보자. DW, AS라는 두 개의 서버가 있다. DW는 실시간으로 데이터를 수집하고 관리하는 서버이고, AS는 이 데이터를 가공하여 사용하는 서버이다. AS에서 DW에 있는 데이터를 사용하기위해서 어떻게 해야할까? 가장 일반적인 방법은 DW에서 Oracle, MySQL과 같은 RDB에 적재하고, AS에서는 이 DB에서 조회해서 쓰는 것이다. 그러나, 실시간으로 처리하기..
2020.01.08