2017-09-26 18 views
0

私はinstruction process to installing and setting up celeryに従っています。今は自分のタスクを実行しようとしています。セロリのタスクは実行されません

bin 
draft1-- 
     | 
     -------draft1 ---- 
          | 
          --------celery.py 
          --------tasks.py 
          --------views.py 
     -------manage.py 
     -------templates 

include 
lib 

ここに私のコードです:

settings.py

CELERY_BROKER_URL = 'amqp://guest:[email protected]:5672//' 

celery.py

import os 
from celery import Celery 

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings') 

app = Celery('app') 
app.config_from_object('django.conf:settings', namespace='CELERY') 
app.autodiscover_tasks() 

tasks.py

from celery import shared_task 

@shared_task 
def print_this(): 
    print('ONE MINUTE') 
マイプロジェクトツリーは次のようになります

だから私のセロリの機能が動作しない、それはprint文を実行しません

print_this.delay() 

をapp.views。私がしたいことは毎分機能を実行することです。何が問題なのか?

答えて

0

実験を開始する前に、もっと読む必要があると思います。 Celeryは分散タスクキューです。基本的にはキューをポーリングして、実行する必要があるタスクがあるかどうかを確認します。存在する場合、タスクを実行します。

セットアップについては、タスクランナーがあるようですが、実行するタスクがあるかどうかを確認するためにランナーがポーリングする必要があるキューはありません。設定CELERY_BROKER_URLはそのキューに関するものです。私はあなたが"Celery's Introduction documents"を読むことから始めることをお勧めします。特に"What do I need?"部分。

NOTEキュー・PART

をOUT図の後にも、私はどのようにDjangoアプリケーションを実行して、仕えるかわからないけど、セロリは、別のプロセスが必要です。その部分のためにあなたはスキムを"First Steps with Celery"する必要があります。

+0

私はすべてを読んだことがあります。キュー部分について「把握する」ことは何もありませんか?私は 'CELERY_BROKER_URL'が私の指示と同じでなければならないので、私のアプリをdjangoのローカルサーバーで実行しています。私は '/ bin/celery -A draft1 worker -l info'を自分のプロジェクトルート(ここでmanage.py)で試してみましたが、このエラーを返しました:' AttributeError:module 'draft1'に 'app''/'' AttributeError:module 'draft1'には属性 'celery''がありません。これはどういう意味でしょうか? ( 'draft1は私のアプリ名です') – Zorgan

+0

キューサーバーをセットアップしましたか? rabbitmqのように? –

+0

はい、私のdjangoサーバーとrabbitmqが動作しています。 – Zorgan

関連する問題