Routine beim Öffnen der Seite ausführen

Django, Flask, Bottle, WSGI, CGI…
Antworten
Pitwheazle
User
Beiträge: 871
Registriert: Sonntag 19. September 2021, 09:40

Und noch eine Frage:
Im Februar und im August, wird für meine Nutzer ein neues Halbjahr angefangen und die Anzeige der Aufgaben größtenteils zurückgesetzt. (Und im Januar, Juni und Juli, können die User das selbt veranlassen). Die entsprechende Routine rufe ich zur Zeit beim Einloggen (und auch beim Registrieren auf). Mit dem entsprechenden Cookie werde ich aber automatisch eingeloggt. Wie kann ich dafür sorgen, dass meine Routine beim ersten Öffnen der Seite im Februar oder August erzwungen wird? Geht das überhaupt oder muss ich diese Überprüfung immer aufrufen, wenn eine Aufgabenkategorie aufgerufen wird?
__deets__
User
Beiträge: 14523
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich würde das immer bei jedem relevanten request prüfen & entsprechend dann bei Bedarf laufen lassen. Es gibt keinen wirklichen Grund, das nicht zu machen. Außer du kannst durch gutes profiling belegen, dass es ein Problem ist.
Pitwheazle
User
Beiträge: 871
Registriert: Sonntag 19. September 2021, 09:40

Ich dachte an die Performace - aber das liegt sicher daran, dass ich irgendwann mit 8Bit Rechnern und Floppy Disks angefangen habe. Ich kenne sogar noch Hauptspeicher mit Ferritkernen - ich habe mit einer Siemens 4004 Cobol gelernt.
Zuletzt geändert von Pitwheazle am Sonntag 22. Januar 2023, 17:02, insgesamt 1-mal geändert.
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

Das geht in Django automatisch. Du kannst Deinen Session per set_expiry ein Datum mitgeben, das halt auf den nächste Februar bzw. August gesetzt ist.
__deets__
User
Beiträge: 14523
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das macht die Sache aber unnötig kompliziert. Wenn die coookies zwischendurch gelöscht werden, weil neuer Rechner oder Hygienemassnahme, dann passiert was? Werden die dann nur 2 Wochen oder 2 Tage gültig? Und erzwingen dann wegen einer solchen technizität einen re-login? Halte ich für eine schlechte Lösung.
Pitwheazle
User
Beiträge: 871
Registriert: Sonntag 19. September 2021, 09:40

Sirius3 hat geschrieben: Sonntag 22. Januar 2023, 17:01 Das geht in Django automatisch. Du kannst Deinen Session per set_expiry ein Datum mitgeben, das halt auf den nächste Februar bzw. August gesetzt ist.
Ich fürchte, das musst du mir genauer erklären. Wahrscheinlich habe ich das mit den Sessions noch nicht ganz kapiert (auch die habe ich von @whitie übernommen, ohne sie wirklich zu verstehen). Ich dachte diese Session gilt jeweils nur von Stellung der Aufgabe zur Antwort des Nutzers.
Pitwheazle
User
Beiträge: 871
Registriert: Sonntag 19. September 2021, 09:40

sorry, diese Antwort gehört in mein anderes Posting!
Zuletzt geändert von Pitwheazle am Sonntag 22. Januar 2023, 17:30, insgesamt 1-mal geändert.
nezzcarth
User
Beiträge: 1633
Registriert: Samstag 16. April 2011, 12:47

Wenn ich es richtig verstehe und es sich um eine regelmäßig wiederkehrende Routineaufgabe handelt, wäre das meiner Meinung nach etwas, das ich als Management Command in Django implementieren und dann per Task Scheduler (Systemd timer, Cron Job, …) zur gewünschten Zeit ausführen würde.
__deets__
User
Beiträge: 14523
Registriert: Mittwoch 14. Oktober 2015, 14:29

Pitwheazle hat geschrieben: Sonntag 22. Januar 2023, 17:11
__deets__ hat geschrieben: Sonntag 22. Januar 2023, 17:04 Das macht die Sache aber unnötig kompliziert. Wenn die coookies zwischendurch gelöscht werden, weil neuer Rechner oder Hygienemassnahme, dann passiert was? Werden die dann nur 2 Wochen oder 2 Tage gültig? Und erzwingen dann wegen einer solchen technizität einen re-login? Halte ich für eine schlechte Lösung.
Ich habe mich bei meiner Überlegung an der Nachfrage "Anmeldung speichern?" orientiert, der ich auf verschiedenen Webseiten begegne. Ansonsten ist es doch so, dass, wenn user1 sich am Computer in der Schule abmeldet und user2 sich anschließend anmeldet, letzterer das Loggin des users1 nutzen kann - oder reden wir da aneinander vorbei?
Ich habe mich dabei auf Sirius3 Vorschlag, das durch eine begrenzte Lebensdauer der Cookies zu machen, bezogen. Das ergibt fuer mich wenig Sinn, weil es eben die beschriebenen Seiteneffekte hat. Und mit deinem Szenario hier wird das ganze tatsaechlich nochmal weniger sinnvoll, denn du willst ja gar keine langlebigen Cookies, sondern nur einen login und dann eine Session, die so lange haelt, bis der Browser geschlossen/sich abgemeldet wird. Also bringt es auch nichts, da einen Cookie mit Lebensdauer "bis zum naechsten mal pruefen" anzulegen. Da musst du eh bei jedem login pruefen, denn wann und wie anders soll es gehen? Ausser im Hintergrund wie von nezzcarth angeregt.
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

sorry, muß richtig lesen. Ich habe die Frage mit der anderen zu Sessions verknüpft. Hier geht es ja mal wieder nur um das richtige Abfragen von Datenbanken.
Wenn Du für jede Aufgabe einen Datenbankeintrag hast, dann mußt Du für die Anzeige ja nur nach den Einträgen filtern, die dem aktuellen Halbjahr entsprechen. Du mußt also nichts regelmäßig zurücksetzen.
Pitwheazle
User
Beiträge: 871
Registriert: Sonntag 19. September 2021, 09:40

Nun ja, das mit der entsprechenden Filterung hattes du (?) mir schon mal empfohlen, ich habe das jetzt aber anders gelöst - ansonsten wäre mir das zu komplex geworden. Da ich eh eine Tabelle eingerichtet habe, die die Vorgaben für jeweils 10 Aufgaben (die der user jeweils am Stück erledigen muss) habe, speichere ich hier auch die Werte für jeweils ein Halbjahr. Da die Lehrkraft ja auch auf diese Daten zugreifen kann, wäre mir die Filterung sonst einfach zu kompliziert geworden (das schafft mein altes Hirn nicht mehr). Das heißt im Profil des users wird gespeichert, an welchem Schulhalbjahr er arbeitet (das kann nunmal im Januar, Juni und Juli auch schon das nächste sein - das habe ich so vorgesehen, da ich die Arbeit der Kids bei meiner Zeugnisnote berücksichtigt habe und diese Zeugnisnote im Januar und Juli (und oft auch schon im Juni) feststeht ) . Einige müssen noch was für ihre Zeugnisnote tun und einige können schon vorarbeiten. Und bei Klick auf neues Halbjahr werden diese Einträge in "Zaehler" gelöscht, nicht aber in "Protokoll". ich bitte dieses zu entschuldigen. Es gibt auch sonst noch Gimmicks, die nur für ein Halbjahr gelten und die waren mir zu komplizeirt aus dem "Protokoll" herauszufiltern.
Antworten