Es hängt davon ab, was Ihre Aufgaben tun sollen, ob Sie sie verteilen müssen und wie Sie sie verwalten möchten.
Eine Crontab kann alle N Intervalle ein Skript ausführen. Es läuft und kehrt dann zurück. Im Wesentlichen erhalten Sie in jedem Intervall eine einzelne Ausführung. Sie können einfach eine Crontab anweisen, einen Django-Verwaltungsbefehl auszuführen und Zugriff auf die gesamte Django-Umgebung zu erhalten, sodass Sellerie Ihnen dort nicht wirklich hilft.
Was Sellerie mit Hilfe einer Nachrichtenwarteschlange auf den Tisch bringt, sind verteilte Aufgaben. Viele Server können dem Pool von Mitarbeitern beitreten und erhalten jeweils ein Arbeitselement, ohne Angst vor doppelter Behandlung zu haben. Es ist auch möglich, eine Aufgabe auszuführen, sobald sie fertig ist. Mit cron sind Sie auf mindestens eine Minute beschränkt.
Stellen Sie sich beispielsweise vor, Sie haben gerade eine neue Webanwendung gestartet und erhalten Hunderte von Anmeldungen, für die eine E-Mail an jeden Benutzer gesendet werden muss. Das Senden einer E-Mail kann (vergleichsweise) lange dauern, sodass Sie entscheiden, dass Sie Aktivierungs-E-Mails über Aufgaben bearbeiten.
Wenn Sie cron verwenden, müssen Sie sicherstellen, dass jede Minute cron alle E-Mails verarbeiten kann, die gesendet werden müssen. Wenn Sie mehrere Server haben, müssen Sie jetzt sicherstellen, dass Sie nicht mehrere Aktivierungs-E-Mails an denselben Benutzer senden - Sie benötigen eine Art Synchronisierung.
Mit Sellerie fügen Sie der Warteschlange eine Aufgabe hinzu. Möglicherweise haben Sie mehrere Mitarbeiter pro Server, sodass Sie bereits vor einem Cronjob skaliert haben. Möglicherweise verfügen Sie auch über mehrere Server, mit denen Sie noch mehr skalieren können. Die Synchronisation wird als Teil der 'Warteschlange' behandelt.
Sie können Sellerie als Cron-Ersatz verwenden, aber das ist nicht wirklich seine primäre Verwendung. Es wird zum Auslagern asynchroner Aufgaben in einem verteilten Cluster verwendet.
Und natürlich hat Sellerie eine große Liste von Funktionen , die Cron nicht bietet.