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', 

] 

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") 

을 cron.py하지만 출력 쇼 종료하면

$ python manage.py runcrons 
hello 

만 실행할 경우.

30 초마다 어떻게 출력을 얻을 수 있습니까?

+0

나는 또한 django_cron을 설치했습니다. via $ 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_CLASSES = [ 
    "my_app.cron.MyCronJob", 
    # ... 
] 

나. 또한, 파이썬 관리를 통해 실행하는 것이 여러 번 계속 실행된다는 것을 의미하지는 않습니다. 아마도 cron 작업에서 'python manage.py runcrons'를 실행할 필요가있을 것입니다. 귀하의 일정은 단순히 이 필요한지 여부를 manage.py runcrons를 호출 할 때 실행할지 여부를 결정합니다. 자세한 내용은 여기를 참조하십시오 : http://django-cron.readthedocs.io/en/latest/installation.html