0

Ich muss die Aufgabe im Zeitplan implementieren, dafür benutze ich django_cron. Bei der Einstellung:django_cron wird nur einmal ausgeführt, Scheduler funktioniert nicht?

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

] 

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

aber wenn ich laufen

$ python manage.py runcrons 
hello 

Nur einmal Ausgabe zeigt und endet.

Wie kann ich alle 30 Sekunden ausgegeben werden.

+0

ich habe auch django_cron installiert. über django_cron –

+0

$ installieren pip Versuchen Sie, mit 'Python -u manage.py runcrons' –

+0

Lese # 6 von diesem Link http://django-cron.readthedocs.io/en/latest/installation.html – Anoop

Antwort

1

ein paar Dinge:

a. sieht so aus, als wäre Ihr Cron-Job nicht richtig konfiguriert.

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

b: zu voll qualifizierte Paketnamen Ihrer cron-Klasse, wie dies nach doc, benötigen Sie eine CRON_CLASSES Liste in den Einstellungen Wegpunkten zu erstellen. Der Punkt, an dem es über Python-Management ausgeführt wird, bedeutet auch nicht, dass es mehrmals ausgeführt wird. Wahrscheinlich müssen Sie die 'python manage.py runcrons' noch von einem Cron-Job ausführen. Ihr Zeitplan wird nur entscheiden, ob ausgeführt werden muss, wenn Sie manage.py Runcrons aufrufen. siehe mehr Details hier: http://django-cron.readthedocs.io/en/latest/installation.html