5

私の問題はかなり単純なはずであり、必死に修正する必要があるものよりも興味深い問題です。グーグルは私が探していた答えを私に与えることができなかったので、あなたの専門知識が私を助けてくれることを願っています。使ってます:

Django 1.4
Celery 2.5.5
Redis 2.4.10 (latest version on homebrew?)

そして、私は次のコマンドを使用してすべてを実行しています:

redis-server /usr/local/etc/redis.conf
foreman run python manage.py runserver
foreman run "python manage.py celeryd -E -B --loglevel=INFO"
foreman run python manage.py celerycam

私のsettings.pyには、Celery用に次の構成が設定されています。

import djcelery
djcelery.setup_loader()

BROKER_URL = redis
CELERY_RESULT_BACKEND = 'redis'
CELERY_REDIS_HOST = "localhost"
CELERY_REDIS_PORT = 6379
CELERY_REDIS_DB = 0

CELERY_SEND_TASK_ERROR_EMAILS = True
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
CELERY_TASK_RESULT_EXPIRES = 172800  # 48 hours.

この構成では、次の1つを除いて、すべてが機能しているように見えます。

django-celeryを使用すると、django adminに自動的にセロリが統合され(きちんと!)、期限切れになっていないすべてのタスクのステータスを確認したり、新しいタスクをスケジュールしたりできます。

管理者のタスクリストには、値は表示されません。つまり、すべての値が「なし」です。値をクリックすると詳細が表示されますが、正しく収集されているように見えます。それはただの詳細ですが、それは私をたくさん悩ませます。

それらの値がリストに表示されない理由は何でしょうか。また、それを修正するにはどうすればよいですか。

前もって感謝します

編集:スクリーンショット

uuidなどのすべての値がNoneであることがわかりますが、タスクが終了したかどうかはわかりますので、ここにいくつかのスクリーンショットがあります。2番目のスクリーンショットでは、詳細ページ(タスクをクリックした後)を見ることができ、ここにすべての情報があります。

django-celery管理タスクリストにすべての値が表示されない そして2番目の画像:

すべての値を表示するタスクの詳細ページ

4

2 に答える 2

2

私もこれを持っています。django-celeryのバグのようです。これを修正したい場合は、バージョンのdjango-celeryを更新する必要があります( django-celeryのこのコミットで修正されています)。

以下を変更した場合(djcelery.admin_utils関数内でfixedwidth):

return """<span title="%s", style="font-size: %spt;\
                font-family: Menlo, Courier; ">%s</span>""" % (
    escape(val[:255]), pt, escape(shortval)).replace("|br/|", "<br/>")

の中へ:

    return ("""<span title="%s", style="font-size: %spt;\
                    font-family: Menlo, Courier; ">%s</span>""" % (
        escape(val[:255]), pt, escape(shortval))).replace("|br/|", "<br/>")

その後、値は管理者に表示されます。

于 2012-06-19T11:50:50.940 に答える
1

私も同じエラーが発生しました。ただし、admin_utils.pyの更新に関する例には、わずかなエラーがあります。あなたがする必要がある交換は次のとおりです:

admin_utils.pyの先頭にFIXEDWIDTH_STYLEを追加します。

FIXEDWIDTH_STYLE = '''\
<span title="%s", style="font-size: %spt; \
font-family: Menlo, Courier; ">%s</span> \
'''

そして、置き換えます:

return """<span title="%s", style="font-size: %spt;\
                font-family: Menlo, Courier; ">%s</span>""" % (
    escape(val[:255]), pt, escape(shortval)).replace("|br/|", "<br/>")

と :

styled = FIXEDWIDTH_STYLE % (escape(val[:255]), pt,escape(shortval))
return styled.replace("|br/|", "<br/>")

上記のgithubリンクでより明確に確認できます。完璧に動作します!乾杯!

于 2012-06-20T16:54:04.043 に答える