1
모든 y 앱의 자동 검색 작업에 문제가 있습니다. 내가 뭔가를 app_tasks_found
에서 나 작업 만 보여 주지만, 셀러리 노동자셀러리가 모든 앱에서 작업을 자동으로 검색하지 않습니다.
celery worker -l info -A proj
을 시작하면
프로젝트proj
|-- settings.py
|-- app_tasks_found
| |-- tasks.py
|
|-- app_cant_find_tasks
| |-- tasks.py
를 들어
그리고 다음과 같은 설정
INSTALLED_APPS = [
'proj.app_tasks_found',
'proj.app_cant_find_tasks',
]
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings')
from django.conf import settings
app = Celery('proj')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
하지
app_cant_find_tasks
에서
그리고 명시 적으로 CELERY_IMPORTS = ("proj.app_cant_find_tasks.tasks",)
나를 위해 완전히 유사한이 응용 프로그램을 설정하면 내가 app_cant_find_tasks
에서 작업을 찾을 수 있습니다 작업을 app_cant_find_tasks.tasks.test_task.delay()
셀러리를 호출 할 때 물론 셀러리 인상 오류. 셀러리가 하나의 앱에서만 작업을 자동으로 검색 할 수있는 이유를 알지 못합니다. 질문은 어디에 있습니까? 문제를 해결하려면 어떻게해야합니까?
저는 이것이 내 프로젝트의 문제라는 것을 깨닫기 전에 시간을 좀 보냅니다. 그것은 아주 미묘한 오류입니다, 그리고 나는 Django 응용이 그렇지 않으면 잘 작동한다는 것이 놀랍습니다. 'autodiscover_tasks'가 자동으로 모든 예외를 무시하는 것처럼 보였으므로 필자는 전에 의존해야했던 트릭을 사용하여 끝냈습니다. 첫 번째 매개 변수로 [apps.get_app_configs()]의 n에 대한 n.name의 출력을 복사하여 붙여 넣으십시오. app.autodiscover_tasks ([ 'proj.myapp1', .... 'proj.myapp432')'를 실행하고 앱을 주석 처리하여 나머지 앱에서 작업을 가져올 수없는 앱을 확인합니다. – Raekkeri