セロリ3.1.11
settings.py
# Celery transport
BROKER_URL = 'django://'
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
from celery.schedules import crontab
CELERYBEAT_SCHEDULE = {
'every-minute': {
'task': 'tasks.sync_oracle_history',
'schedule': crontab(minute='*/1'),
},
}
project.apps.projフォルダーに、tasks.pyを追加します
from __future__ import absolute_import
from celery import task
@task(name='tasks.sync_oracle_history')
def sync_oracle_history():
print "="*30
print "TODO: sync_oracle_history pending"
わからない、私へのヒントは大歓迎です。
bashシェルで、コマンドを実行する場合:celery beat -A proj -l info、キューにのみ送信し、タスクを実行しない、
ただし、コマンドcelery worker -A proj -l infoを変更すると、タスクがトリガーされます。
Beatはタスクを実行せず、メッセージを送信するだけです。 ビートインスタンスとワーカーインスタンスの両方が必要です!
ありがとう@ask
こんにちは、タスクを実行するたびにこれらのコマンドを使用しないようにするにはどうすればよいですか? @xiaods @ask
最も参考になるコメント
Beatはタスクを実行せず、メッセージを送信するだけです。 ビートインスタンスとワーカーインスタンスの両方が必要です!