71번째 줄: |
71번째 줄: |
| | | |
| # Load task modules from all registered Django app configs. | | # Load task modules from all registered Django app configs. |
− | app.autodiscover_tasks() # 선택사항. 자동으로 하위 앱의 tasks.py를 탐색한다. | + | app.autodiscover_tasks() # 선택사항. 자동으로 하위 앱의 tasks.py를 탐색한다. 맨 마지막의 tasks를 바꾸면 다른 이름으로 지정할 수도 있다. |
| + | # ex) app.autodiscover_othername() |
| </syntaxhighlight> | | </syntaxhighlight> |
| |- | | |- |
152번째 줄: |
153번째 줄: |
| 뭔가 성공적인 메시지가 뜨면 준비 완료. | | 뭔가 성공적인 메시지가 뜨면 준비 완료. |
| | | |
− | task.py의 내용이 바뀌면 재실행 해주어야 한다.(장고의 내용이 바뀌면 재실행하듯.)
| + | tasks.py의 내용이 바뀌면 재실행 해주어야 한다.(장고의 내용이 바뀌면 재실행하듯.) |
− | |celery -A 프로젝트명.celery worker --loglevel=info | + | |
| + | |
| + | 이후 task를 받으면 <code>[2023-01-12 19:11:47,323: INFO/SpawnPoolWorker-5] child process 4480 calling self.run()</code>과 같이 작업을 띄운다. |
| + | |celery -A 프로젝트명 worker --loglevel=info |
| + | |- |
| + | |윈도우에서. |
| + | |윈도우에선 지원을 하지 않는다. 윈도우에선 self.run()은 띄워도 작업이 진행되지 않는다. |
| + | 굳이 윈도우에서 쓰고 싶다면... 아래 라이브러리 설치 후 우측과 같이 쓰자. |
| + | |
| + | pip install gevent |
| + | |celery -A 프로젝트명 worker -l info -P gevent |
| |} | | |} |
| 이후 운용에선 굳이 셀러리를 시작시켜주는 게 아니라 장고에서 자연스레 돌리는 듯하다.[확인필요] | | 이후 운용에선 굳이 셀러리를 시작시켜주는 게 아니라 장고에서 자연스레 돌리는 듯하다.[확인필요] |
211번째 줄: |
222번째 줄: |
| |- | | |- |
| |task 작성 | | |task 작성 |
− | | | + | |task를 작성할 땐 에러메시지를 곧바로 피드백받기 어려우니.... |
| + | |
| + | 일단 작성 후 view에서 delay() 없이 실행하며 작동을 확인한 후 진행하자. |
| |<syntaxhighlight lang="python"> | | |<syntaxhighlight lang="python"> |
| from celery_tutorial.celery import app # celery를 등록한 경로에서. | | from celery_tutorial.celery import app # celery를 등록한 경로에서. |