on
celery 분산작업 오류 해결
celery 분산작업 오류 해결
우선 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
from http://not-to-be-reset.tistory.com/534 by ccl(A) rewrite - 2021-11-22 18:27:07