6

celeryd と celerybeat を使用している django アプリがあります。どちらもデーモンとして実行するように設定されています。celerybeat が正しく起動しないため、celerybeat タスクは実行されません。ログによると、すぐにシャットダウンします。

[2012-05-04 13:02:49,055: WARNING/MainProcess] celerybeat v2.5.1 is starting.
[2012-05-04 13:02:49,122: INFO/MainProcess] process shutting down
[2012-05-04 13:02:49,122: DEBUG/MainProcess] running all "atexit" finalizers with priority >= 0
[2012-05-04 13:02:49,134: DEBUG/MainProcess] running the remaining "atexit" finalizers

/etc/int.d/celerybeat start で開始しています

これは /etc/default/celerybeat の設定です:

# Where the Django project is.
CELERYBEAT_CHDIR="/var/www/path_to_app/cms/"

# Python interpreter from environment.
ENV_PYTHON="$CELERYBEAT_CHDIR/bin/python"

# Name of the projects settings module.
export DJANGO_SETTINGS_MODULE="cms.settings"

# Path to celerybeat
CELERYBEAT="$ENV_PYTHON $CELERYBEAT_CHDIR/cms/manage.py celerybeat"

# Extra arguments to celerybeat
CELERYBEAT_LOG_LEVEL="DEBUG"
CELERYBEAT_USER="www-data"

CELERYBEAT_GROUP="www-data"

タスク スケジュールは settings.py で設定されます。

CELERYBEAT_SCHEDULE = {
    # Executes every  morning at 7:00 A.M
    "every-morning": {
        "task": "cms.tasks.get_recent_posts_for_all_pages",
        "schedule": crontab(hour=7, minute=00)
    },
}

./manage.py celerybeat を使用してシェルから celerybeat を実行すると、正常に動作するようです。

celeryd config には celerybeat セクションもありますが、無視されていると思います。

よろしくサイモン

4

1 に答える 1

0

たぶん、rabbitmq のようなブローカーを使用していないかもしれません https://web.archive.org/web/20180703074815/http://celery.readthedocs.io/en/latest/getting-started/brokers/rabbitmq.html

于 2015-10-06T21:24:39.513 に答える