1. Cookies optimieren die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklärst Du dich damit einverstanden, dass wir Cookies verwenden. Weitere Informationen
    Information ausblenden
  2. Willkommen im Forum von DIGITAL FERNSEHEN - dem führenden Portal für digitales Fernsehen, Medien und Entertainment. Wenn du hier neu bist, schau dich ruhig etwas um und melde dich an, um am Forengeschehen teilnehmen zu können.
    Information ausblenden

Aufnahmetimer in Rails

Dieses Thema im Forum "Computer & Co." wurde erstellt von x-man, 2. November 2007.

  1. x-man

    x-man Gold Member

    Registriert seit:
    29. März 2001
    Beiträge:
    1.728
    Zustimmungen:
    37
    Punkte für Erfolge:
    58
    Anzeige
    Hallo Leute,

    arbeite gerade an einem Aufnahmetimer in Rails. Habe dabei ein grundsätzliches Problem, dass jetzt nichts mit der Programmiersprache zutun hat. Und da hier einige Entwickler unterwegs sein könnten, die sowas ähnliches schon programmiert haben, frage ich hier einfach mal nach:

    Es sollen Timer mit einmaliger und mehrmaliger Startzeit (wiederholende Timer) programmiert werden können.
    Wiederholende Timer sollen nur einmalig in die Datenbank eingetragen werden. Also nur der Starttermin mit Startzeit und Wiederholungsoptionen.
    Es soll zudem jederzeit ermittelt werden können welche Aufnahme momentan läuft.
    Dies soll das Programm selbst anhand der Datenbank ermitteln können, ohne zu schauen was denn gerade für eine Aufnahme aktuell läuft. Die Funktion brauche ich zum Abgleich, was denn jetzt wirklich läuft und was eigentlich nach Plan laufen sollte und auch für eine Vorschau in Kalenderform.
    Wenn ich jezt die aktuell laufende Aufnahme für alle Timer mit einmaliger Startzeit ermitteln möchte, dann mache ich einfach folgendes:
    Suche mir alle Termine raus deren Startdatum = heute und Startzeit <= jetzt, und für Startermine die <= heute gestartet frage ich die Startzeit nicht ab.
    Jeztzt sortiere ich nach Stardatum und suche mir davon die Starzeit die am größten ist aus und habe die aktuell laufende Aufnahme.

    Das Problem liegt bei wiederholenden Timern:
    Ich kann das Startdatum leider nicht mit einbeziehen, denn diese können beliebig in der Vergangenheit liegen. Und nur mit Startzeit komme ich leider nicht weiter. Ich kann zwar ermitteln ob ein wiederholender Timer heute stattfindet (bei wöchentlichen Timre z.B. durch Abfrage des Wochentages und dann einfach nach der Startzeit schauen)
    aber bei der Funktion: welche Aufnahme läuft momentan gibt es folgendes Problem:
    Da mache z.B. für wöchentliche Timer folgendes: Startdatum <= heute, Startzeit<= jetzt, wday = wday.
    Das Problem ist folgende:
    Es kann eine Aufnahme gestern abend um 23 Uhr gestartet sein welche am nächsten Tag um 1 Uhr noch läuft. Diese wird dann aber nicht als aktuelle Aufnahme angezeigt, weil Startdatum ist zwar kleiner als =< heute, aber Startzeit ist nicht <= jetzt, weil 23 Uhr ist größer als 1 Uhr. Hier kann ich um das Problem zu lösen nicht einfach vorher nach Startdatum sortieren. Da das in der Datenbank eingetragen Startdatum wie gesagt beliebig in der Vergangenheit liegen kann.

    Dachte als nächtes die wiedeholenden Timer "virtuell" abzubilden, d.h. diese für eine gewisse Zeit vorzuberechnen, aber vielleicht hat jemand eine einfachere Idee?
     
    Zuletzt bearbeitet: 2. November 2007