Planen eines regelmäßigen Ereignisses: Cron / Cron Alternativen (einschließlich Sellerie)

Etwas, das ich interessiert habe, läuft regelmäßig in bestimmten Zeitintervallen. Offensichtlich ist das eine Aufgabe für cron , richtig?

Leider scheint das Internet dort ein bisschen Unstimmigkeit zu sein.

Lass mich ein wenig über mein Setup ausarbeiten. Zuerst ist meine Entwicklungsumgebung in Windows, während meine Produktionsumgebung auf Webfaction (Linux) gehostet wird. Es gibt keine echte cron auf Windows, richtig? Auch ich verwende Django ! Und was ist für Django vorgeschlagen?

Sellerie natürlich! Leider ist die Einrichtung von Sellerie mehr oder weniger ein wörtlicher Albtraum für mich – siehe Fehlermeldung 'Keine Handler konnte für Logger gefunden werden "Multiprocessing" mit Celery . Und das ist nur eine der Probleme, die ich mit Sellerie hatte. Andere beinhalten einen Socket-Fehler, den ich der einzige bin, der jemals das Problem bekommen hat.

Versteh mich nicht falsch, Sellerie scheint WIRKLICH cool. Leider gibt es einen Mangel an Unterstützung, und einige seltsame Einschränkungen in seine bevorzugte Backend gebaut, RabbitMQ . Leider, egal wie cool ein Programm ist, wenn es nicht funktioniert, gut, es funktioniert nicht!

Das ist, wo ich hoffe, dass alle von Ihnen hereinkommen können. Ich würde gerne über Cron oder ein Cron-Äquivalent wissen, das ähnlich (vorzugsweise identisch) in einer Windows- und einer Linux-Umgebung eingerichtet werden kann.

(Ich habe schon seit zwei Wochen mit Celery gekämpft und leider denke ich, dass es Zeit ist, in das Handtuch zu werfen und aufzugeben, zumindest für jetzt.)

  • Python os.walk und japanischer Dateiname Absturz
  • Können Windows-Treiber in Python geschrieben werden?
  • Entfernen von Minimieren / Maximieren von Schaltflächen in Tkinter
  • Python select.select () unter Windows
  • Verwenden von lxml für Python - Windows 7 64-bit
  • Setzen Sie die Python-Terminal-Codierung unter Windows
  • Kann nicht ".mp4" Videodateien mit OpenCV 2.4.3, Python 2.7 in Windows 7 Maschine öffnen
  • Paster-Daemon wird nicht heruntergefahren, weil man keine eigene pid-Datei lesen kann
  • 4 Solutions collect form web for “Planen eines regelmäßigen Ereignisses: Cron / Cron Alternativen (einschließlich Sellerie)”

    Eine einfache, nicht-celery Weg, um Dinge zu nähern wäre, um Django benutzerdefinierte Management-Befehle zu erstellen, um Ihre asynchronen oder geplanten Aufgaben auszuführen.

    Dann, unter Windows, verwenden Sie den Befehl at um diese Aufgaben zu planen. Unter Linux verwende man cron .

    Ich würde auch dringend empfehlen, Windows zu schneiden, wenn man für eine Entwicklungsumgebung kann. Dein Leben wird auf Linux oder sogar Mac OSX so viel besser sein. Reparieren Sie eine Ersatz- oder alte Maschine mit Ubuntu zum Beispiel oder führen Sie Ubuntu in einer VM auf Ihrer Windows-Box aus.

    Ich hatte das gleiche Problem und hielt es ab, es mit Sellerie zu lösen (zu kompliziert) oder cron (extern zur Anwendung) und am Ende finden Sie Advanced Python Scheduler . Nur gerade begonnen, es zu benutzen, aber es scheint vernünftig reif und stabil, hat anständige Dokumentation und wird eine Reihe von Scheduling-Formate (zB Cron-Stil) zu nehmen.

    Aus der Dokumentation , läuft eine Funktion in einem bestimmten Intervall.

     from apscheduler.scheduler import Scheduler sched = Scheduler() sched.start() def hello_world(): print "hello world" sched.add_interval_job(hello_world,seconds=10) 

    Dies ist nicht blockierend, und ich laufe etwas ziemlich identisch durch einfaches Importieren des Moduls aus meinem urls.py Hoffe das hilft.

    https://github.com/andybak/django-cron

    Ausgelöst durch eine einzige Cron-Task, aber alle Terminierung und Konfiguration erfolgt in Python.

    Django Chronograph ist eine gute Alternative. Du musst nur einen Cron einrichten und dann alles in django admin machen. Sie können Aufgaben / Befehle vom django-Management aus planen.

    Python ist die beste Programmiersprache der Welt.