Django Celeryのドキュメントを参照しています。
ドキュメントが言ったようcelery.py
に、私は自分で作成しました。proj/proj
そして含まれる__init__.py
セロリ.py
from __future__ import absolute_import
import os
from celery import Celery
from django.conf import settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings')
app = Celery('proj')
app.conf.update(
CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend',
)
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
__init__.py
from __future__ import absolute_import
from .celery import app as celery_app
をインストールしてpip install django-celery
から移行しpython manage.py migrate djcelery
ました。DBにいくつかのテーブルが作成されました。
タスク.py
from __future__ import absolute_import
from celery import shared_task
import requests
import json
@shared_task
def post_notification(data,url):
headers = {'content-type': 'application/json'}
requests.post(url, data=json.dumps(data), headers=headers)
その後、私は自分のビューで自分のタスクを次のように呼び出しました
task = post_notification.delay(data,url)
print task.id #it prints an id
print task.status # prints PENDING
しかし、私のテーブルには何もログインされません。
SO、Thread1 、Thread2など、これらのスレッドで指定された多くのスレッドを読みましたが、何も起こりません。
タスクの ID とステータスが表示されますが、タスクを DB に保存するにはどうすればよいですか? 通常は にログインする必要がありますcelery_taskmeta
が、そこには何もありません。
タスクは実行されますが、DBにもタスクを保存したいと思います。どうすればいいですか?足りないものはありますか?