0

我必須按時完成任務,因爲我使用的是django_cron。 在設定: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 

一次輸出顯示並結束。

我如何在每30秒後得到輸出。

+0

我也安裝了django_cron。通過 $ pip install django_cron –

+0

嘗試使用'python -u manage.py runcrons'運行 –

+0

從此鏈接閱讀#6 http://django-cron.readthedocs.io/en/latest/installation.html – Anoop

回答

1

幾件事情:

一個。看起來您的cron作業配置不正確。根據文檔,你需要在你的設置路徑指向創建CRON_CLASSES列表,您的cron類的完全合格的包名,如:

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

灣另外,通過python管理它的意義並不意味着它會繼續運行多次。您可能仍然需要從cron作業運行'python manage.py runcrons'。您的日程安排將僅決定當您呼叫manage.py runcron時是否需要運行。在這裏看到更多的細節:http://django-cron.readthedocs.io/en/latest/installation.html