3

これは私の定期的なタスクです:

from celery.task import PeriodicTask
from celery.registry import tasks
from datetime import timedelta
from datetime import datetime

class MyTask(PeriodicTask):
    run_every = timedelta(minutes=1)

    def run(self, **kwargs):
        self.get_logger().info("Time now: " + datetime.now())
        print("Time now: " + datetime.now())

tasks.register(MyTask)

python manage.py runserver で django サーバーを起動し、python manage.py celeryd -B でセロリも起動しました。

コードによれば、時間は出力されているはずですが、コマンドプロンプトにはまだ何も出力されません。

ここで何がうまくいかないのですか?かなり簡単に見えます。

4

2 に答える 2

1

次のようなものが必要です。

CELERYBEAT_SCHEDULE = {
    'proc': {
        "task": "tasks.processing",
        "schedule": timedelta(seconds=60),
        },
    }

あなたceleryconfig.pyまたはdjangoのsettings.pyで完全なドキュメントを参照してくださいhttp://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html

于 2013-01-06T12:22:53.513 に答える
0

システムのタイムゾーンが Django のタイムゾーンと同じかどうかを確認してください。

Django の場合: 設定ファイルから変更します。

Linux オペレーティング システムの場合: 次のように変更します。ln -s /usr/share/zoneinfo/America/Chicago /etc/localtime

于 2013-06-22T00:01:35.230 に答える