Knowledge Map

celery 관련 본문

PYTHON

celery 관련

2018. 6. 11. 21:13

1. celery에 대한 간단한 사용 코드는 


http://flask.pocoo.org/docs/0.12/patterns/celery/

https://blog.miguelgrinberg.com/post/using-celery-with-flask

http://flask.pocoo.org/docs/1.0/patterns/celery/


를 참고하면 된다. 물론 개인저장소의 CeleryModule 래퍼 클래스와 config.py를 참고하면 더 좋다.


2. flask 의 app 컨텍스트 사용하기 


celery는 개별적인 다른 프로세스로 돌아가기 때문에 flask의 컨텍스트를 그대로 받아서 사용하지 않고 아예 별개의 컨텍스트라고 보면된다.

따라서 flask에 import 했던 모듈들은 제대로 동작이 안되는 경우가 많을 것이다. flask app의 컨텍스트를 사용하기 위해서는


with app.app_context():

....


를 사용하면 된다.


3. json으로 입력


celery로 간단하게 데코레이터 사용해서 특정 task를 등록하게 될 것이다. 그 때 해당하는 task에 인자는 배열[] 형태로 들어간다. 즉 인자가 n개이면 []배열안에 n개의 값으로 들어간다. 그런데 이게 json형태로 받는거 같다. 그래서 만약 값을 그냥 무턱대로 넣으면 json으로 serialize 할수 없다고 에러가 뜰것이다. byte값을 넣어도 그런경우가 있다. 이럴 때는 적절하게 인코딩하고 dictionary형태로 입력하면 celery task 가 제대로 동작하는 것을 볼수 있다. 좀더 알아봐야 할거 같다.



FileStorage 객체의 경우 해당 file의 데이터는 해당 인스턴스의 read 메서드를 하면 된다.


'PYTHON' 카테고리의 다른 글

python2으로 json 파일 생성하기  (0) 2018.06.18
python2 multiprocessing 과 tensorflow  (0) 2018.06.18
import _macosx 에서의 runtimeError  (0) 2018.06.01
create_db using sqlalchemy  (0) 2018.05.09
SQLAlchemy session transaction delete 문제  (0) 2018.04.12
Comments