먼저 Redis부터 설치한다.
터미널에 아래의 명령어를 차례대로 입력한다.
$ wget http://download.redis.io/releases/redis-5.0.0.tar.gz
$ tar xzf redis-5.0.0.tar.gz
$ cd redis-5.0.0
$ make
(현재 5.0 버전이므로 추후 바뀔 수 있음. 그때는 https://redis.io/download 참고)
위처럼 나온다면 정상적으로 설치가 완료된 것이다.
혹시 모르니 실제로 실행시켜본다.
먼저 터미널에서 redis-server를 입력한다.
위와 같이 나온다면 정상적으로 서버가 실행된 모습이다.
이제 celery를 설치해야 한다.
파이썬으로 작업환경을 구축할 때는 가상환경을 통해 독립적인 공간을 만드는게 좋다.
(pipenv로 가상환경 구축하기 -> http://hides.tistory.com/913 참고)
구축했다고 가정하고 아래의 명령어를 입력하여 celery와 redis관련된 dependency들을 설치한다.
pipenv install 'celery[redis]'
또는 전역적으로 설치하고 싶다면 아래와 같이 입력한다.
pip3 install 'celery[redis]'
이제 tasks.py라는 파일을 생성하고 아래의 내용을 채워넣는다.
그리고 터미널에서 아래의 명령어를 입력한다.
(redis-server 명령어를 통해 미리 redis서버를 실행시켜놔야 한다)
celery -A tasks worker --loglevel=info
다음으로 publisher.py파일을 생성하고 아래의 내용을 넣는다.
그리고 python3 publisher.py를 통해 실행시켜보면 redis서버에 다음과 같이 로그가 남는다.
(delay()는 비동기로 실행하는 메소드다)
여기서 result.get()등의 메소드를 통해 결과값에 대한 핸들링을 할 수 있는데 나같은 경우 파이썬 3.7을 사용하고 있다.
자꾸 from . import async, base쪽에서 invalid syntax에러가 나서 구글링을 해보니 아직 3.7을 지원하지 않는다고 한다.
하위버전으로 진행하면 정상적으로 동작한다.
'Coding > Python' 카테고리의 다른 글
Python boto3로 AWS S3스토리지 연동하는 방법 (0) | 2018.12.05 |
---|---|
Flask Mongoengine Mongo Atlas와 연동하는 방법 (0) | 2018.12.04 |
Flask-restplus 파일/이미지 업로드하는 방법 (0) | 2018.08.19 |
Python *args, **kwargs 란 무엇인가 (0) | 2018.08.06 |
Django Restframework JWT 토큰 인증 커스터마이징 (0) | 2018.06.28 |