땅고 채널 + 셀러리 실전 밟기 실록

최근에 테스트 플랫폼을 만들었는데 실시간 로그 시스템이 필요하기 때문에 Django+channels+celery+redis 구조를 사용했습니다.
다음은 윈도우즈 플랫폼!
과정이 순조롭지 못한 이유는 다음과 같다.
1. 웹소켓에 익숙하지 않다
2. 채널스, 셀리 첫 접촉
3. 첫 번째 실시간 로그 시스템, 경험 없음
이 기술들은 이전에 약간 보았지만 사용하기에는 별개의 것이다. 특히 이 기록은 구덩이를 밟는 기록이고 관련 강좌는 참고할 수 있다.
https://mp.weixin.qq.com/s/hqaPrPS7w3D-9SeegQAB2Q
https://mp.weixin.qq.com/s/r5SpyTjRl0jJeAuYE4Q_-Q
이 강좌는 리눅스를 사용하고 본인은 윈도우즈를 사용했기 때문에 많은 문제를 제외하고는 마침 많은 것을 배웠지만 다행히 마지막에 다 해냈다.
문제1: 채널을 배치했는데 메시지를 받지 못합니까?
답:대부분 리디스가 설정이 안 됐어요.
질문 2:celery가 배치되었지만 Celery Value Error: not enough values to unpack(expected 3,got 0)을 잘못 보고했습니까?
답:celery 버전이 너무 높아서 당신은celery를 설치한 것이 틀림없습니다.x.celery 3으로 되돌아가는 것을 권장합니다.1.25
질문3:celery 버전은 3이지만 오류 보고:redis celery Attribute Error:'str'object has no attribute'items'?
답:celery를 낮추어도 리디스를 낮추고, 리디스를 2.10.6으로 낮추세요.
문제4: 로그 시스템이 마침내 좋아졌지만, 전단에서 socket을 닫고 열면 정보를 받지 못합니까?
답: 사실celery일지를 보면 알 수 있어요,channlesname 변하지 않았습니다. 지난번 기록입니다.-pool=solo 매개 변수를 사용하여 selery를 시작했기 때문입니다. 이 매개 변수를 제거하고celery-A webset worker-l info를 사용하여 시작합니다. 이때 잘못 보고하면 상기 문제 2, 3 때문일 것입니다.
문제5:celery가 시작되었고,redis도 시작되었지만,calery가 메시지를 받지 못합니까?
답: 대부분 당신의 Redis 설정이 잘못되었습니다. 웹set/celery를 보십시오.py 파일, Redis 설정을 보려면 celery 3.x 및 celery 4.x의 설정은 약간 다르다
celery4.x:
app.autodiscover_tasks()
app.config_from_object('django.conf:settings',namespace='CELERY')

celery3.x:
app.config_from_object('django.conf:settings')

app.autodiscover_tasks(lambda :settings.INSTALLED_APPS)

좋은 웹페이지 즐겨찾기