私の問題は、私がtest()を呼び出そうとするとかなりうまくいくが、test.delay()を呼び出すと "未登録のタスクを返す"ということです。Celery Redisが "タイプの未登録のタスクを受け取りました"
とtest.delay test.delayから()(あなたが見ることができるように、最初のものは動作します。)
結果()
settings.py
BROKER_URL = 'redis://localhost:6379/0'
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_IMPORTS=("tasks")
INSTALLED_APPS = (
"systech_account",
#...
)
tasks.py
from __future__ import absolute_import
from celery import shared_task
@shared_task
def test():
return "Just a Test"
celeryconfig.py
from __future__ import absolute_import
import os
from celery import Celery
from django.conf import settings
# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'root.settings')
app = Celery()
# Using a string here means the worker will not have to
# pickle the object when using Windows.
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
。
私はジャンゴ
- 使用しています1.9
- セロリ4.0
- Redisのサーバーは2.8.4
- のPython 2.7
- のUbuntu 14.04
お返事ありがとうございます。 「セロリを再起動する」と言ったら、* celeryを再実行することを意味します--app = root.celery:app worker --loglevel = INFO *?もしそうなら、私はすでにそれをしましたが、運はありません。 Tasks.pyについては、単なるタイプです。それを指摘してくれてありがとう。 – aldesabido