0

私は初めてceleryです。私は次のようにいくつかの構成を持っていceleryconfig.pyます:

from datetime import timedelta

BROKER_URL='redis://localhost:6379/0'
CELERY_RESULT_BACKEND="redis"
CELERY_REDIS_HOST="localhost"
CELERY_REDIS_PORT=6379
CELERY_REDIS_DB=0
CELERY_IMPORT=("mail")

CELERYBEAT_SCHEDULE={'runs-every-30-seconds' :
                        {
                                'task': 'mail.mail',
                                'schedule': timedelta(seconds=30),
                        },
                    }

ジョブが 30 秒で定期的に実行されるようにスケジュールしました。今、私はジョブを開始したいのですが、29 augこれ4:00PMをどのように設定すればよいですか??

4

1 に答える 1

1

timedelta の代わりに Cron を使用する必要があります。Celery のドキュメントでは、これについて具体的に説明し、いくつかの有用な例を提供しています。Crontab のスケジュールを見る

セロリの例を次に示します。

from celery.schedules import crontab

CELERYBEAT_SCHEDULE = {
    # Executes every Monday morning at 7:30 A.M
    'every-monday-morning': {
        'task': 'tasks.add',
        'schedule': crontab(hour=7, minute=30, day_of_week=1),
        'args': (16, 16),
    },
}

これを条件に合わせて機能させるには、cronmonth_of_yearパラメーターも指定する必要があります。

于 2012-08-29T04:03:49.733 に答える