리셋 되지 말자

celery 분산작업 오류 해결 본문

프로젝트

celery 분산작업 오류 해결

kyeongjun-dev 2021. 11. 22. 18:20

우선 os를 ubuntu 에서 centos 로 변경. 기존에는 이미지 처리를 위한 opencv 설치를 위해

libgl1-mesa-dev

위 패키지를 apt 로 설치해 줬었는데, 

centos 에선

yum install mesa-libGL

위 패키지를 설치해주면 된다.

 

이슈

celery 에 작업을 던지는 host 에 tensorflow 같은 무거운 패키지가 필요한가? 매우 고민이 많았다. 그래서 해결을 위해 celery task를 경량화(?) 하는 작업을 진행 중이다. Django 와 연동은 안했는데, host 에서 rabbitmq 로 메시지를 던졌는데 celery worker 에서 작업을 실행하지 않는 이슈가 있었다.

이에 대한 이슈는 아직 확실히 파악하지는 못했지만 해결 방법은 링크와 같았다. 

First install eventlet,

pip install eventlet

and then run

celery -A myapp.celeryapp worker --loglevel=info -P eventlet

celery 의 경우 eventlet 을 사용한다고 한다. 이에 대한 한 개발자의 StackOverflow 링크

이제 서비스를 더 유동적으로 확장할 수 있을 거 같다!

 

참고

Celery 의 Eventlet 에 대한 설명은 아래 링크 참고

https://docs.celeryproject.org/en/stable/userguide/concurrency/eventlet.html

 

Concurrency with Eventlet — Celery 5.2.1 documentation

This document describes the current stable version of Celery (5.2). For development docs, go here. Concurrency with Eventlet Introduction The Eventlet homepage describes it as a concurrent networking library for Python that allows you to change how you run

docs.celeryproject.org

 

Comments