2016-11-11 21 views
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つのアプリからしかタスクを自動検出できない理由は分かりません。 問題はどこで解決するのですか?

答えて

1

私も同様の問題がありましたが、私の場合は、 .pyファイルがアプリケーションの1つにありませんでした。

+0

私はこれが私のプロジェクトの問題だと気づく前に、ある程度の時間をかけてデバッグをしています。それは非常に微妙なエラーです、私は私のDjangoアプリケーションが正常に動作していたことには驚きました。 'autodiscover_tasks'はすべての例外を静かに無視するように見えるので、私は前に依存しなければならなかったトリックを使いました:最初のパラメータとして' 'app.get_app_configs()のnのn.name ' app.autodiscover_tasks(['proj.myapp1'、.... 'proj.myapp432') 'を実行し、アプリケーションのコメントアウトを開始して、残りのアプリケーションからタスクをインポートできないようにします。 – Raekkeri

関連する問題