2013-07-15 7 views
5

Ich habe genau das gleiche Problem in diesem post beschrieben, aber die Antwort hilft überhaupt nicht. Kurz gesagt, ich verwende Tivix django-cron, der Cron-Job läuft nicht regelmäßig.Wie Tivix django-cron App zu verwenden

Um das Problem zu veranschaulichen, soll die folgende Cron-Job-Klasse jede Minute beim Ausführen des Befehls runcrons E-Mails senden. Aber tatsächlich sendet es nur eine E-Mail und nicht mehr. Das besiegt den Zweck von Cron ... Was vermisse ich?

class TestCron(CronJobBase): 
    schedule = Schedule(run_every_mins=1) 
    code = 'test_cron_philip' 

    def do(self): 
     send_mail('cron test', 'body is test body', '[email protected]', 
        ['[email protected]'],fail_silently=False) 

Antwort

8

Ja, verpassen Sie etwas ("runcrons" ist nicht Hintergrund Deamon). Aus der Dokumentation:

„Jetzt jedes Mal wenn Sie den Verwaltungsbefehl Python manage.py runcrons alle crons laufen laufen, wenn erforderlich Je nach Anwendung kann das Management Befehl aus dem Unix crontab aufgerufen wird wie. oft wie benötigt. Alle 5 Minuten funktioniert normalerweise für die meisten meiner Anwendungen. "

Das bedeutet, Sie müssen "runcrons" Befehl in Ihre Crontab setzen.

Beispiel:

Sie haben einige CronJob, die alle 30 Minuten etwas tun.

Um dies laufen Sie Sie crontab (Linux, Mac) oder Task-Scheduler (Windows) bearbeiten müssen "Python manage.py runcrons" für jeden laufen, lassen Sie 1 min sagen.

Wenn Sie dies ausführen, wird Ihr CronJob alle 1 Minute gepingt und wenn nötig ausgeführt (alle 30 Minuten oder welcher Wert auch immer).

Hoffe, das hilft.

+1

Ich hatte dies in meiner Crontab-Datei: * * * * * root python /home/nash/djangocode/zingyhomes_new/manage.py runcrons aber es funktioniert immer noch nicht? bitte hilfe. –

Verwandte Themen