Announcement

Collapse
No announcement yet.

Thread oder Timer für nebenläufigen Code?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Thread oder Timer für nebenläufigen Code?

    Hallo #,

    ich will in meine DB nun endlich mal auch pessimistische Sperren einbauen,
    dass heisst, bevor der Nutzer was ändern will, muss das Programm prüfen,
    ob nicht schon jemand anderes dran arbeitet.

    Bitte keine Info, dass es anders geht,
    ich mache das so wie es jeztzt folgt (da war mal nen guter Artikel im Entwickler).

    Das Programm führt eine Sperrtabelle mit, wo jeder gesperrte Datensatz
    mit seiner ID (prim. key) drinsteht.
    Zusätzlich wird auch die Uhrzeit der Sperrung eingetragen,
    und diese Uhrzeit wird ständig (alle x Minuten) aktualisiert.
    Damit kann man sich gegen Sperren abgestürzter Programme sichern
    (veraltete Sperren werden gelöscht).

    Nun zum Problem.
    Der Ansatz im Artikel benutze einen Timer zur Aktualisierung.

    Würde das über einen Thread einfacher / besser sein.
    der Thread würde sich "starten", die Aktualisierung machen
    und wieder schlafenlegen.

    Was meint ihr ?

    Danke im voraus
    Heiko

  • #2
    Hallo Heiko,

    Thread = einfach ist schon mal ein Widerspruch in sich. Falls Du diese Lösung verwenden willst muß Du innerhalb des Threads mit einer eigenen Datenbank-Session arbeiten.

    Da ich den Inhalt des Artikels nicht mehr im Kopf habe kann ich im Detail nichts sagen. In welchem Heft stand den der Artikel?

    Gruß

    Torste

    Comment


    • #3
      Da dieses Porgramm meiner Meinung nach auf dem Server laufen muss und letztendlich nichst anderes macht als in einem bestimmten Intervall die Locktable prüft ob es Lockeinträger älter als xx gibt ist die Timerlösung eine gute Wahl. Ein Thread macht meiner Meinung nach nur Sinn, wenn dieser Vorgang parallel zu anderen Aufgaben ausgeführt werden soll. Nur was soll das sein ?
      Das Timer u.U. nicht auf die zehntel Sekunde genau sind, ist hier völlig nebensächlich.
      Außerdem benötigst Du für einen Thread, wie Thorsten schon richtig geschrieben hat, eine zusätzliche Connection, die nur innerhalb dieses Threads angelegt und benutzt werden kann.

      Gruß

      Gerhar

      Comment

      Working...
      X