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.

  • Umgebungsvariablen, wenn das Python-Skript von cron ausgeführt wird
  • Cron Jobbin 'ein Python-Skript: hält auf halbem Weg
  • Cron arbeitet auf dem lokalen Host, aber nicht bei der Bereitstellung von Appengine
  • Einen cronjob nur mit python-crontab laufen lassen
  • Python-Skript mit Cron ausführen, wenn nicht läuft
  • Python Google App Engine Cron Job funktioniert nicht
  • 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.)

  • Unterschiede zwischen zwei Listen
  • 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.