Seite 1 von 1

Scheduled Task mit Django

Verfasst: Samstag 8. Mai 2021, 19:29
von naheliegend
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

Re: Scheduled Task mit Django

Verfasst: Samstag 8. Mai 2021, 21:02
von sparrow
Django-Q

Re: Scheduled Task mit Django

Verfasst: Sonntag 9. Mai 2021, 06:24
von naheliegend
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?

Re: Scheduled Task mit Django

Verfasst: Sonntag 9. Mai 2021, 07:47
von __deets__
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.

Re: Scheduled Task mit Django

Verfasst: Sonntag 9. Mai 2021, 09:47
von nezzcarth
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.

Re: Scheduled Task mit Django

Verfasst: Sonntag 9. Mai 2021, 19:31
von DasIch
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.

Re: Scheduled Task mit Django

Verfasst: Donnerstag 13. Mai 2021, 16:16
von naheliegend
Danke euch.