GAE/Pのタスクキューは、通常、このように使います。
1.メインのプログラムで、キューに入れる
[views.py]
def hoge(request):
…
taskqueue.add(url='/task', params={'key': 'var'})
…
2.Task Queue Service が /task に HTTPリクエストを送る
3.URLディスパッチで、タスクを起動
[urls.py]
url(r'^task$', views.task),
4.タスク処理を実行
[views.py]
def task(request):
… あれこれ
return HttpResponse()
でも、タスク処理が実行されず、しばし、悩みました。
開発サーバーのログを見てると、403エラーで弾かれてる??
ググッてみても、Adminでログインしろとか、トンチンカンな答えばかり..
結局は、CSRF絡みでした。
http://docs.djangoproject.jp/en/latest/ref/contrib/csrf.html
django.middleware.csrf.CsrfViewMiddleware が有効になっている場合は、このように書きましょう。
5.タスク処理(改)
[views.py]
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def task(request):
… あれこれ
return HttpResponse()
無事、解決。
0 件のコメント:
コメントを投稿