1

OKみんな、これは私を狂わせています。私はこれに丸一日取り組んでいますが、うまくいきません!
私のセロリプロジェクトの構造は次のとおりです。

# celery.py

from celery.schedules import crontab
from celery import Celery

celery = Celery('scheduler.celery',
                include=['scheduler.tasks'])

celery.config_from_object('celeryconfig')

と:

# tasks.py

from scheduler.celery import celery

@celery.task
def test():
    do_something()

と:

# celeryconfig.py

from celery.schedules import crontab

CELERYBEAT_SCHEDULE = {
    'test-cron': {
        'task': 'tasks.test',
         'schedule': crontab(minute='*/1'),
    },
}
# CELERY_IMPORTS = ('tasks', )
BROKER_URL = 'redis://localhost:6379/0'

すべてのファイルはprojects/scheduler/フォルダーの下にあります。
サービスを開始すると、celerydサービスが実行されてブローカーに接続されていることcelerybeatがわかりますが、サービスを開始すると、ログに次のメッセージが表示されますReceived unregistered task of type 'tasks.test'
定数のコメントを外すとCELERY_IMPORTS(SOの多くの回答で示唆されているように)、celerydサービスは開始されません! 実際には出力されますOKが、ps ef | grep celery実行していないことがわかります。

私のデーモン conf ファイルは次のようになります。

# Name of nodes to start
CELERYD_NODES="w1"

# Where to chdir at start.
CELERYD_CHDIR="/home/me/projects/scheduler/"

# Extra arguments to celeryd
CELERYD_OPTS="--time-limit=300 --concurrency=4"

# %n will be replaced with the nodename.
CELERYD_LOG_FILE="/var/log/celery/%n.log"
CELERYD_PID_FILE="/var/run/celery/%n.pid"

# Workers should run as an unprivileged user.
CELERYD_USER="celery"
CELERYD_GROUP="celery"

# Extra arguments to celerybeat
CELERYBEAT_OPTS="--schedule=/var/run/celerybeat-schedule"

どんな助けでも大歓迎です。

4

1 に答える 1