読者です 読者をやめる 読者になる 読者になる

[Django][Celery]開発中にcelerydの実行結果を簡単に見る方法。

DjangoのceleryのTaskMetaをadminで管理すればいいよねってだけの話。

環境

  • Python2.6.5
  • Django1.2_rc_1(リビジョン13238)

手順

前提としては、

  • Djangoのプロジェクトは事前に作ってある。
  • Celeryの設定がされている。
Djangoアプリケーションの作成

アプリケーション名は自由に。今回はceleryadmin。

python manage.py startapp celeryadmin
admin.pyの設定
cd celeryadmin
emacs admin.py

以下admin.py例。

# -*- coding: utf-8 -*-
from django.contrib import admin
from celery.models import TaskMeta

class TaskMetaAdmin(admin.ModelAdmin):
    u"""Task result/status admin"""

    fieldsets = ((None, {
                         'fields': (
                                    'status',
                                    'result',
                                    'date_done',
                                    'traceback',
                                    )
                         }),
                 )

    list_display = ('task_id',
                    'status',
                    'result',
                    'date_done',
                    'traceback',
                    )
    list_filter = ('status',
                   'date_done',
                   )
#    search_fields = ('',)

admin.site.register(TaskMeta, TaskMetaAdmin)
settings.pyのINSTALLED_APPSに追加する。

settings.pyのINSTALLED_APPSに作ったアプリケーション(今回だとceleryadmin)を追加する。

以上、完了。

余談

書いてて気付いたけど、そもそもcelery使えるエンジニアって、この記事程度は朝飯前。

書いた意味なかったな...。

備考

順番が逆だけど、RabbitMQとCeleryの設定については別の機会にまとめる。