Scheduled Task mit Django

Django, Flask, Bottle, WSGI, CGI…
Antworten
naheliegend
User
Beiträge: 363
Registriert: Mittwoch 8. August 2018, 16:42

Samstag 8. Mai 2021, 19:29

Hi,

User können in meiner App ein Datum und eine Zeit eingeben, wo dann ein reiner Backendprozess mit Änderung der Daten in der DB ablaufen soll.

Was nutze ich dafür? Am liebsten etwas mit leichter Installation und auch einfachem Deployment, wenn es Richtung production geht.

Hätte jetzt Redis+Celery genommen, aber lass mich auch gerne überraschen.

LG
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
Benutzeravatar
sparrow
User
Beiträge: 2709
Registriert: Freitag 17. April 2009, 10:28

Samstag 8. Mai 2021, 21:02

Django-Q
naheliegend
User
Beiträge: 363
Registriert: Mittwoch 8. August 2018, 16:42

Sonntag 9. Mai 2021, 06:24

sparrow hat geschrieben:
Samstag 8. Mai 2021, 21:02
Django-Q
Perfekt. Danke. Habe es mit dem Django-ORM als Broker umgesetzt.
Unless you have configured a dedicated database backend for it, this should probably not be your first choice for a high traffic setup. However for a medium message rate and scheduled tasks, this is the most convenient guaranteed delivery broker.
Ab wann ist etwas high-traffic bzw. medium message rate?
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
__deets__
User
Beiträge: 9882
Registriert: Mittwoch 14. Oktober 2015, 14:29

Sonntag 9. Mai 2021, 07:47

Das merkst du, wenn du ihn hast. Denn die Antwort ist nun mal kein einfach “73”. Und die meisten Technologien der Hyperscaler unnötig für Normalsterbliche.
nezzcarth
User
Beiträge: 1307
Registriert: Samstag 16. April 2011, 12:47

Sonntag 9. Mai 2021, 09:47

Wenn die Hintergrundtasks nicht augenblicklich laufen müssen, reicht es ggf. auch, das rein in Django sowie mit einem Cronjob auf dem Host zu realisieren. Das hat ein paar Nachteile, aber auch den (meiner Meinung nach großen) Vorteil, dass man eben keine zusätzliche Technik wie Redis oder zusätzliche Libraries braucht, um die man sich kümmern muss. Die geplanten Aufgaben können als Django-Modell repräsentiert werden. Der Cronjob prüft z. B. stündlich, auf neue Aufgaben in der entsprechenden Tabelle und arbeitet diese ab. Kommt halt auch ein bisschen darauf an, was das für Hintrgrundjobs sind, d.h. wie lange die laufen, wie parallel die sein müssen usw.
DasIch
User
Beiträge: 2630
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Sonntag 9. Mai 2021, 19:31

Postgres macht massive Probleme wenn man anfängt Zeilen einer Tabelle in hoher Frequenz zu updaten bzw. das äquivalent davon zu tun. Durch MVCC sammeln sich dead tuples an und Postgres kommt man irgendwann mit Vacuum nicht mehr hinterher. Das führt dazu dass es sich für Queues nicht so gut eignet, es sei den man nutzt pgq.

Allerdings hat natürlich Redis oder RabbitMQ auch irgendwo Grenzen.
Ab wann ist etwas high-traffic bzw. medium message rate?
Lässt sich schwer pauschal sagen aber zur groben Einordnung damit ist gemeint dass du kontinuierlich eine höhere Anzahl von Messages pro Sekunde hast.
naheliegend
User
Beiträge: 363
Registriert: Mittwoch 8. August 2018, 16:42

Donnerstag 13. Mai 2021, 16:16

Danke euch.
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
Antworten