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.tasks.test_task.delay()
セロリはapp_cant_find_tasks
からタスクを見つけることができます呼び出そう。セロリが1つのアプリからしかタスクを自動検出できない理由は分かりません。 問題はどこで解決するのですか?
私はこれが私のプロジェクトの問題だと気づく前に、ある程度の時間をかけてデバッグをしています。それは非常に微妙なエラーです、私は私のDjangoアプリケーションが正常に動作していたことには驚きました。 'autodiscover_tasks'はすべての例外を静かに無視するように見えるので、私は前に依存しなければならなかったトリックを使いました:最初のパラメータとして' 'app.get_app_configs()のnのn.name ' app.autodiscover_tasks(['proj.myapp1'、.... 'proj.myapp432') 'を実行し、アプリケーションのコメントアウトを開始して、残りのアプリケーションからタスクをインポートできないようにします。 – Raekkeri