1

私はdjango_cronを使用しているため、スケジュールに従ってタスクを実装する必要があります。設定時:

INSTALLED_APPS = [
    'mailsnake',
    'corsheaders',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'Avaana_web',
    'rest_framework',
    'rest_framework.authtoken',
    'django_cron',

]

およびcron.py

    from django_cron import CronJobBase, Schedule,cronScheduler
    import datetime,os
    class MyCronJob(CronJobBase):
        RUN_EVERY_MINS = .3
        RETRY_AFTER_FAILURE_MINS = 5
        ALLOW_PARALLEL_RUNS = True
        schedule = Schedule(run_every_mins=RUN_EVERY_MINS,      
  retry_after_failure_mins=RETRY_AFTER_FAILURE_MINS)
        code = 'my_app.my_cron_job'
        def do(self):
            print("hello")

しかし、私が走るとき

$ python manage.py runcrons
 hello

出力が表示されて終了するのは 1 回だけです。

30秒ごとに出力を取得する方法。

4

1 に答える 1

1

いくつかのこと:

を。cron ジョブが正しく構成されていないようです。ドキュメントによると、次のように、設定パスに CRON_CLASSES リストを作成して、cron クラスの完全修飾パッケージ名を指すようにする必要があります。

CRON_CLASSES = [
    "my_app.cron.MyCronJob",
    # ...
]

b. また、python manage を介して実行するという点は、複数回実行し続けるという意味ではありません。おそらく、cron ジョブから「python manage.py runcrons」を実行する必要があります。スケジュールは、manage.py runcrons を呼び出したときに実行する必要があるかどうかを決定するだけです。ここで詳細を参照してください:http://django-cron.readthedocs.io/en/latest/installation.html

于 2016-11-12T19:25:47.407 に答える